//注意海拔可为负值。
1 /* 发洪水 h____________________
2 #include <iostream>
3 #include <cstdio>
4 #include <string>
5 #include <cstring>
6 #include <algorithm>
7 #include <cmath>
8 #include <vector>
9 #include <list>
10 #include <deque>
11 #include <queue>
12 #include <cctype>
13 #include <map>
14 #include <set>
15 #include <bitset>
16 #include <functional>
17 #include <numeric>
18 #include <utility>
19 #include <sstream>
20 #include <iomanip>
21 #include <cstdlib>
22 #include <ctime>
23 #include <cassert>
24 #include <limits>
25 #include <fstream>
26 using namespace std;
27 typedef long long ll;
28 typedef pair<ll,ll> pll;
29 #define pb(x) push_back(x)
30 typedef unsigned long long ull;
31 #define mem(A, X) memset(A, X, sizeof A)
32 #define ford(i,l,u) for(ll (i)=(ll)(l);(i)>=(ll)(u);--(i))
33 #define foreach(e,x) for(__typeof(x.begin()) e=x.begin();e!=x.end();++e)
34 #define fori(i,l,u) for(ll (i)=(ll)(l);(i)<=(ll)(u);++(i))
35 typedef pair<int,int> pii;
36 #define sec second
37 #define fir first
38
39 const ll mod=1e9+7;
40 const ll maxn=1e5+10;
41
42 int main()
43 {
44 std::ios::sync_with_stdio(false);
45 freopen("in.txt","r",stdin);
46 int m,n;
47 int kase=0;
48 while(cin>>n>>m&&(m||n))
49 {
50 int h[920];
51 fori(i,1,m*n) cin>>h[i];
52 h[0]=0;
53 int sumwater;
54 cin>>sumwater;
55
56 sort(h+1,h+1+m*n);
57
58 double level=h[1];
59 double percent=0.000001;
60 if(sumwater)
61 {
62 if(n*m==1)
63 {
64 level=h[1]+sumwater/100.0;
65 percent=100.001;
66 }
67 else
68 {
69 fori(pos,1,n*m)
70 {
71 sumwater+=100*(h[pos]-h[1]);
72 level=(double)sumwater/(pos*100);
73
74
75 if(pos+1<=n*m )
76 {
77 if(level<=h[pos+1]-h[1])
78 {
79 percent=(double)pos/(n*m)*100;
80 break;
81 }
82 }
83 else
84 {
85 percent=(double)pos/(n*m)*100;
86 break;
87 }
88
89 }
90 level+=h[1];
91 }
92
93
94 // fori(pos,1,m*n)
95 // {
96 // sumv+=100*(h[pos]-h[pos-1])*(m*n-pos+1);
97 // cout<<sumv<<endl;
98 // if(sumv>=sumwater)
99 // {
100 // float height=h[pos];
101 // cout<<h[pos]<<"-------"<<endl;
102 // if(sumv==sumwater) { level=height; }
103 // else
104 // {
105 // int pretemp=0;
106 // while(sumv>sumwater)
107 // {
108 // pretemp=0;
109 // fori(pos,1,n*m)
110 // {
111 // if(h[pos]>=height) { sumv-=1; pretemp++; }
112 // }
113 // height-=0.01;
114 // //cout<<"sumv: "<<sumv<<"height: "<<height<<endl;
115 // }
116 // if(sumv<sumwater)
117 // {
118 // if(sumwater-sumv>sumv+pretemp-sumwater)
119 // {
120 // level=height;
121 // }
122 // else
123 // {
124 // level=height+0.01;
125 // }
126 // }
127 // else level=height;
128 // }
129
130 // break;
131
132 // }
133 // }
134
135 }
136
137
138 cout<<"Region "<<++kase<<endl;
139 cout<<"Water level is "<<setiosflags(ios::fixed)<<setprecision(2)<<level<<" meters."<<endl;
140 cout<<setiosflags(ios::fixed)<<setprecision(2)<<percent<<" percent of the region is under water."<<endl;
141
142 }
143
144 return 0;
145 }
146
147 /*__________
148 analysis:
149 debug : 海拔有负值,问题是:向n*m的网格,四周为无限长不漏水玻璃构成,
150 其中有一系列高度为h[i][j](可为负值)(由单个实心木块构成,不进水,仅占空间)。现在向其中加v立方米的水,
151 水平面的高度,俯视图中被水完全覆盖(严格小于)的网格面积的百分比。
152 note :
153 */