UVA 815 Flooded!

来源:互联网 发布:scd数据库期刊 编辑:程序博客网 时间:2024/05/21 14:41

先sort一下,在计算出相邻高度差,再依次计算蓄水量 

如案例中,13*100+2*200+7*300......

#include <iostream>#include <cstring>#include <algorithm>#include <cstdio>using namespace std;#define maxn 1000int main(){int m,n,kase=0;while(scanf("%d%d",&m,&n)==2&&m){int R[maxn]={0},w;for(int i=0;i<m*n;i++)scanf("%d",&R[i]);scanf("%d",&w);sort(R,R+m*n);int high=R[0];for(int i=0;i<m*n-1;i++) R[i]=R[i+1]-R[i];int sum=0,cnt=1;for(int i=0;i<m*n-1;i++,cnt++) <span style="white-space:pre"></span>if(sum+R[i]*cnt*100>w) break;<span style="white-space:pre"></span>else sum+=R[i]*cnt*100,high+=R[i];printf("Region %d\n",++kase);printf("Water level is %.2f meters.\n",(double)(w-sum)/(cnt*100)+high);printf("%.2f percent of the region is under water.\n\n",((double)cnt/(m*n))*100);}} 



0 0
原创粉丝点击