uva 815

来源:互联网 发布:斯芬克 知乎 编辑:程序博客网 时间:2024/06/05 18:44

原题

比较简单的一道题, 紫书上说比较考验思维的...

#include <iostream>#include <iomanip>#include <cstdio>#include <cstdlib>#include <algorithm>#include <string>#include <cstring> #include <vector>#include <set>#include <queue>#include <map>using namespace std;const int MAXN = 100 + 10;typedef long long LL;/*uva 815*/int m, n;float amount;vector<int> blocks;int main(){int Case = 0;while( scanf("%d %d",&m,&n) && m!=0 && n!=0 ){int tmp;blocks.clear();for(int i=0; i<m; i++){for(int j=0; j<n; j++){scanf("%d",&tmp);blocks.push_back(tmp);}}cin >> amount;sort(blocks.begin(),blocks.end());int i, deep, sum_water = 0, SQUARE = 100;for(i=0; i<blocks.size()-1; i++){deep = blocks[i+1]-blocks[i];if( deep*SQUARE<amount ){amount -= deep*SQUARE;SQUARE += 100;}else{break;}}int block_num = i+1;float water_level = (float)blocks[i] + amount/SQUARE;float percentage = 100.0*block_num/(m*n);printf("Region %d\n",++Case);printf("Water level is %.2f meters.\n",water_level);printf("%.2f percent of the region is under water.\n\n",percentage);}return 0;}



0 0
原创粉丝点击