洪水!(Flooded! ACM/ICPC World Finals 1999, UVa815)

有一个n*m(1≤m,n<30)的网格,每个格子是边长10米的正方形,网格四周是无限大
的墙壁。输入每个格子的海拔高度,以及网格内雨水的总体积,输出水位的海拔高度以及有
多少百分比的区域有水(即高度严格小于水平面)

解题思路非常直观可以直接看代码

#include <bits/stdc++.h>


#define mem(a,b) memset(a,b,sizeof(a))
typedef long long int LL;
const int maxn = 1005;
const int inf = 0x3f3f3f3f;#include <bits/stdc++.h>


#define mem(a,b) memset(a,b,sizeof(a))
typedef long long int LL;
const int maxn = 1005;
const int inf = 0x3f3f3f3f;
using namespace std;

//int vaule[maxn];
int main(void)
{
    #ifdef MYLOCAKYACM
//    freopen("input.in","r",stdin);
//   	freopen("output.out","w",stdout);
    #endif // MYLOCA
	int n,m;
	int v[maxn];
	int kase = 0;
	while(scanf("%d%d",&n,&m)!=EOF&&(n||m))
	{
		mem(v,0);
		for(int i = 0;i<n*m;i++)
		{
			scanf("%d",&v[i]);
		}
		sort(v,v+m*n);
		v[m*n] = inf;//保证在最后一定会break; 
		double maxd;scanf("%lf",&maxd);
		maxd /= 100;
		int i = 0;
		for(;i<n*m;i++)
		{
			maxd += v[i];
			if(maxd/(i+1)<=v[i+1])break;
		}
		printf("Region %d\n",++kase);
		printf("Water level is %.2lf meters.\n",(double)maxd/(i+1));
		printf("%.2lf percent of the region is under water.\n\n",(i+1)*100.0/(m*n));
	} 
	return 0;
}


using namespace std;

//int vaule[maxn];
int main(void)
{
    #ifdef MYLOCAKYACM
//    freopen("input.in","r",stdin);
//   	freopen("output.out","w",stdout);
    #endif // MYLOCA
	int n,m;
	int v[maxn];
	int kase = 0;
	while(scanf("%d%d",&n,&m)!=EOF&&(n||m))
	{
		mem(v,0);
		for(int i = 0;i<n*m;i++)
		{
			scanf("%d",&v[i]);
		}
		sort(v,v+m*n);
		v[m*n] = inf;
		double maxd;scanf("%lf",&maxd);
		maxd /= 100;
		int i = 0;
		for(;i<n*m;i++)
		{
			maxd += v[i];
			if(maxd/(i+1)<=v[i+1])break;
		}
		printf("Region %d\n",++kase);
		printf("Water level is %.2lf meters.\n",(double)maxd/(i+1));
		printf("%.2lf percent of the region is under water.\n\n",(i+1)*100.0/(m*n));
	} 
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值