题:

总时间限制: 1000ms       内存限制:65536kB
描写叙述

凹凸不平的地面每当下雨的时候总会积水。如果地面是一维的。每一块宽度都为1,高度是非负整数。那么能够用一个数组来表达一块地面。

比如[0,1,0,2,1,0,1,3,2,1,2,1]能够用来表示下图地面:

当下过雨后,地面就会积水,上图中蓝色的区域就是积水区域。如今给你一个数组表示地面,求下过雨后这块地面有多少积水量(如果不蒸发、不渗透)。

输入
第一行是一个整数m。表示有m组试例子,不超过100。

接下来m块。每块第一行是一个正整数n。表示地面总宽度(数组长度)。不超过20000。

接下来一行是n个整数。用空格隔开,表示地面高度。

输出
对于每组输入,输出一个整数表示积水量。

例子输入:

例子输出:
6
2

解:

#include<iostream>
using namespace std;
int main()
{
int m,n,i,j,c,b,z,l,x=0;
int a[20000];
h:
cout<<"请输入样式组数m(m<=100)"<<endl;
cin>>m;
if(m<0||m>100)
{
cout<<"输入错误。请又一次输入"<<endl;
goto h;
}
for(i=0;i<m;i++)
{
e:
cout<<"请输入数组长度n(n<=20000)"<<endl;
cin>>n;
if(n>20000||n<0)
{
cout<<"输入错误,请又一次输入"<<endl;
goto e;
} for(j=0;j<n;j++) {
cin>>a[j];
}
b=0;
j=0;
w:
b=j;
for(j=b+1;j<n;j++)
{
for(z=b;z>=0;z--)
{
if(a[z]>a[j])
{
for(c=j+1;c<n;c++)
{
if(a[c]>a[j])
{
if(a[c]>a[z])
{
l=a[z];
}
else
{
l=a[c];
}
x=x+(l-a[j]); goto w;
}
}
}
}
}
cout<<"积水量为"<<x<<endl;
} return 0;
}

推荐文章:那些年。做的几个应用

OpenJudge百炼习题解答(C++)--题4074:积水量的更多相关文章

  1. OpenJudge百炼习题解答(C++)--题4010:2011

    题: 总时间限制:  1000ms  内存限制:  65536kB 描写叙述 已知长度最大为200位的正整数n.请求出2011^n的后四位. 输入 第一行为一个正整数k,代表有k组数据,k<=2 ...

  2. OpenJudge百炼习题解答(C++)--题3142:球弹跳高度的计算

    题: 总时间限制:  1000ms  内存限制:  65536kB 描写叙述 一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半.再落下. 编程计算气球在第10次落地时,共经过多少米? ...

  3. OpenJudge百炼习题解答(C++)--题2704:竞赛评分

    题: 总时间限制:  1000ms  内存限制:  65536kB 描写叙述 现举行一次小竞赛,參赛的3支队伍,编号为1,2,3.每支队列轮流回答问题,假设回答正确,加10分;回答错误,扣10分;放弃 ...

  4. DirectX 11游戏编程学习笔记之8: 第6章Drawing in Direct3D(在Direct3D中绘制)(习题解答)

            本文由哈利_蜘蛛侠原创,转载请注明出处.有问题欢迎联系2024958085@qq.com         注:我给的电子版是700多页,而实体书是800多页,所以我在提到相关概念的时候 ...

  5. 機器學習基石(Machine Learning Foundations) 机器学习基石 作业三 课后习题解答

    今天和大家分享coursera-NTU-機器學習基石(Machine Learning Foundations)-作业三的习题解答.笔者在做这些题目时遇到非常多困难,当我在网上寻找答案时却找不到,而林 ...

  6. Coursera公开课Functional Programming Principles in Scala习题解答:Week 2

    引言 OK.时间非常快又过去了一周.第一周有五一假期所以感觉时间绰绰有余,这周中间没有假期仅仅能靠晚上加周末的时间来消化,事实上还是有点紧张呢! 后来发现每堂课的视频还有相应的课件(Slide).字幕 ...

  7. 《C++编程思想》第四章 初始化与清除(原书代码+习题+解答)

    相关代码: 1. #include <stdio.h> class tree { int height; public: tree(int initialHeight); ~tree(); ...

  8. (搬运)《算法导论》习题解答 Chapter 22.1-1(入度和出度)

    (搬运)<算法导论>习题解答 Chapter 22.1-1(入度和出度) 思路:遍历邻接列表即可; 伪代码: for u 属于 Vertex for v属于 Adj[u] outdegre ...

  9. 《Programming Massively Parallel Processors》Chapter5 习题解答

    自己做的部分习题解答,因为时间关系,有些马虎,也不全面,欢迎探讨或指出错误 5.1 Consider the matrixaddition in Exercise 3.1. Can one use s ...

随机推荐

  1. C# 获取文件版本

    var versionInfo = FileVersionInfo.GetVersionInfo(filePath); String productVersion = versionInfo.Prod ...

  2. TJSONTableObject跨平台解析JSON

    TJSONTableObject跨平台解析JSON USES SynCrossPlatformJSON TSQLRecordPeoplePersistent = class(TPersistent) ...

  3. 判断UISrollview的滑动方向

    很常用的一个功能,就记录下来了. -(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { historyY = scrollVi ...

  4. oracle如何查询哪个表数据量大

  5. Linux Shell编程与编辑器使用详解

    <Linux Shell编程与编辑器使用详解> 基本信息 作者: 刘丽霞 杨宇 出版社:电子工业出版社 ISBN:9787121207174 上架时间:2013-7-22 出版日期:201 ...

  6. [转载]《Delphi 版 everything、光速搜索代码》 关于获取文件全路径 GetFullFileName 函数的优化

    Delphi 版 everything.光速搜索代码>,文章中关于获取文件全路径的函数:GetFullFileName,有一个地方值得优化. 就是有多个文件,它们可能属于同一个目录. 譬如 Sy ...

  7. libev客户端

    #include <ev.h> #include <stdio.h> #include <netinet/in.h> #include <stdlib.h&g ...

  8. ElementUI使用问题记录:设置路由+iconfont图标+自定义表单验证

    一.关于导航怎么设置路由 1.在el-menu这个标签的属性中添加 router ,官方文档的解释是:启用vue-router 这种模式 2.在el-menu-item标签中的index属性直接书写路 ...

  9. FreeMarker最简单的例子(1)

    一.通过文件来创建模版对象,并执行插值操作 文件结构为: Test.Java中的代码为: package com.abc; import freemarker.template.Configurati ...

  10. 心路历程——毕设程序mr跑不通的问题

    这个bug改了实在是太多天了,前前后后折腾了太久,最后多谢@CC学长的帮助,找到了问题,才终于跑通了!!!这里记录一下这个bug我前后改的过程,引以为戒! 毕设中需要进行mapreduce进行数据清洗 ...