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