|
@@ -18,11 +18,8 @@ int first_ge() {
|
|
|
int s = 0, e = mn - 1;
|
|
|
while (s <= e) {
|
|
|
int m = s + (e - s) / 2;
|
|
|
- if (sum[m] < vol) {
|
|
|
- s = m + 1;
|
|
|
- } else {
|
|
|
- e = m - 1;
|
|
|
- }
|
|
|
+ if (sum[m] < vol) s = m + 1;
|
|
|
+ else e = m - 1;
|
|
|
}
|
|
|
return s;
|
|
|
}
|
|
@@ -31,11 +28,9 @@ int main() {
|
|
|
int rid = 1;
|
|
|
while (scanf("%d %d", &m, &n) != EOF) {
|
|
|
if (m == 0 && n == 0) break;
|
|
|
- for (int i = 0; i < m; i++)
|
|
|
- for (int j = 0; j < n; j++)
|
|
|
- scanf("%d", &hei[i * n + j]);
|
|
|
- scanf("%d", &vol);
|
|
|
mn = m * n;
|
|
|
+ for (int i = 0; i < mn; i++) scanf("%d", &hei[i]);
|
|
|
+ scanf("%d", &vol);
|
|
|
sort(hei, hei + mn);
|
|
|
for (int i = 0; i < mn - 1; i++) {
|
|
|
sum[i] = (hei[i + 1] - hei[i]) * SQR * (i + 1);
|
|
@@ -46,7 +41,7 @@ int main() {
|
|
|
double lv = hei[i];
|
|
|
vol = i == 0 ? vol : vol - sum[i - 1];
|
|
|
lv += double(vol) / ((i + 1) * SQR);
|
|
|
- printf(fmt, rid++, lv, (i + 1) * 100 / double(mn));
|
|
|
+ printf(fmt, rid++, lv, (i + 1) * 100.0 / mn);
|
|
|
}
|
|
|
return 0;
|
|
|
}
|