题意翻译
有一个n ×m (1≤m ,n* <30)的网格,每个格子是边长10米的正方形,网格四周是无限大的墙壁。输入每个格子的海拔高度,以及网格内雨水的总体积,输出水位的海拔高度以及有多少百分比的区域有水(即高度严格小于水平面)。
输入输出样例
输入 #1
3 3
25 37 45
51 12 34
94 83 27
10000
0 0
输出 #1
Region 1
Water level is 46.67 meters.
66.67 percent of the region
思路
题目翻译的表述有很大问题,建议结合[PDF](Flooded! - UVA 815 - Virtual Judge (vjudge.net))和题解进行理解题意,可以理解在一个平面上,有多个高度不同的柱子组合成一个网格,网格四周是无限大的墙壁,用降水来理解有些违背常识,建议用涨水来理解,即从高度最低的柱子开始涨水,慢慢向其他柱子扩散.判断有多少区域有水,即判断哪些柱子有水.在参考题解时,题解给出的思路是二分法和模拟,这里使用的是二分法的变种,求最后一个小于等于给定值.
代码
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std