题意:来自:https://blog.csdn.net/lecholin/article/details/70186673

思路:

①数组存每个网格的高度,然后排序,做题时想象为上面的柱状图。

②注意对淹没的处理。

③注意每个输出都有空行。

 #include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define FIN freopen("input.txt","r",stdin)
#define FOUT freopen("output.txt","w",stdout)
int main()
{
//FIN;
//FOUT;
int m, n;
int data[],kase=;
double level, percentage, high = ,sum;
while (scanf("%d%d",&m,&n)==&&n!=&&m!=)
{
kase++;
for (int i = ; i < m*n; i++)
{
scanf("%d", &data[i]);
}
high = ;
scanf("%lf", &sum);
sum /= ;//正方形为10*10,化简一下sum
//排序
for (int i = ; i < m*n; i++)
{
for (int j = i + ; j < m*n; j++)
{
if (data[i] > data[j])
{
int ex = data[i];
data[i] = data[j];
data[j] = ex;
}
}
}
//data[m*n] = 100000;//最大的边界
//输出
/*printf("排序后:\n");
for (int i = 0; i < m*n; i++)
{
printf("%-4d", data[i]);
if ((i + 1) % m == 0)
printf("\n");
}*/
for (int i = ; i < n*m; i++)
{
if (sum != - && i == m*n - )//找到最后一个说明淹没了
{
high += (sum*1.0) / (i + );
high += data[];
int cntDown = (i + );
percentage = (cntDown*1.0) / (m*n) * ;
sum = -;
break;
}
if ((data[i + ] - data[i])*(i+)< sum)//小就继续往上面走
{
sum -= (data[i + ] - data[i])*(i+);
high += data[i+]-data[i];
}
else
{
high += (sum*1.0) / (i+);
high += data[];
int cntDown =(i+);
percentage = (cntDown*1.0) / (m*n)*;
sum = -;
break;
} }
printf("Region %d\n", kase);
printf("Water level is %.2f meters.\n",high);
printf("%.2f percent of the region is under water.\n\n",percentage);
}
return ;
}

最新文章

  1. 挑子学习笔记:对数似然距离(Log-Likelihood Distance)
  2. hustoj1353 节点选择 树形dp
  3. ubuntu 14 谷歌拼音输入法
  4. php时间函数整理
  5. mac terminal 命令
  6. 如何从零开始实现一个soa远程调用服务基础组件
  7. jQuery 中的 Ajax $.ajax() load() $.get() $.post() $.getJSON() $.getScript()
  8. [HDU 3336]Count the String[kmp][DP]
  9. 201521123092,《java程序设计》第1周学习总结
  10. ConcurrenHashMap源码分析(二)
  11. Android进阶加密-第1章-Android系统架构-读书笔记
  12. 【Beta】Scrum Meeting 1
  13. 解决sublime text 3使用Install Package时出现There are no packages available for installation问题
  14. Luogu P2597 [ZJOI2012]灾难
  15. C#检测鼠标移动消息
  16. python 获取整点时间戳,半整点时间戳 ,同时将时间戳转换成 日期时间
  17. Centos7安装Oracle 11gR2
  18. WebGL之shaderToy初使用
  19. param 是获取请求传递过来的参数
  20. Linux美化终端

热门文章

  1. java-HTML&amp;javaSkcript&amp;CSS&amp;jQuery&amp;ajax( 八)
  2. 论坛IP地址追踪&amp;路由器密码嗅探
  3. Nginx详解二十二:Nginx深度学习篇之Lua解释器安装及基础语法
  4. Spring Cloud Eureka简介及原理
  5. Expected one result (or null) to be returned by selectOne(), but found: 3
  6. pycaffe训练的完整组件示例
  7. config.GetSection(key)编译不通过
  8. UEditor黑白名单配置
  9. gradle编译命令 &amp; 自动打包等
  10. uva 11367 (Dijkstra+DP)