一直在做黑白棋,估计是格式错误一直A不了,于是跳过去了,看这道题挺水的,第一次在UVa上出PE有点小激动,原来UVa也有PE啊,但是PE的原因让我很无语,输出是两个数据间有空行,习惯的控制了最后不输出多余的空行,所以才PE的。。。


#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N m * n
#define V_WATER (water[i + 1] - water[i])
using namespace std;

int water[1000];

int main() {
    int m, n, times = 0;
    double V;
    while(cin >> m >> n&& m) {
        double k = m * n, d = 1, sum = 0;
        double vegion = 0, tall = 0;
        for(int i = 0; i < N; i++)
            cin >> water[i];
        cin >> V;
        V /= 100;
        sort(water, water + N);
        tall = water[0];
        for(int i = 0; i < N - 1; i++) {
            sum += d * (V_WATER);
            if(sum < V) {
                    vegion = sum;
                    tall += V_WATER;
                    d++;
            } else {
                tall += (V - vegion) / d;
                sum += d * (V - vegion);
                break;
            }
        }
        if(sum < V)
            tall += (V - sum) / d;
        cout << "Region " << ++times << endl;
        printf("Water level is %.2lf meters.\n", tall);
        printf("%.2lf percent of the region is under water.\n\n", d * 100 / k);
        memset(water, 0, sizeof(water));
    }
}