百炼:(4074)积水量

4074:积水量

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

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

例如[0,1,0,2,1,0,1,3,2,1,2,1]可以用来表示下图地面:

百炼:(4074)积水量_第1张图片

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

输入
第一行是一个整数m,表示有m组试样例,不超过100。
接下来m块,每块第一行是一个正整数n,表示地面总宽度(数组长度),不超过20000。
接下来一行是n个整数,用空格隔开,表示地面高度。
输出
对于每组输入,输出一个整数表示积水量。
样例输入
2
12
0 1 0 2 1 0 1 3 2 1 2 1
4
1 0 0 2
样例输出
6
2
代码:
1.#include
2.using namespace std;
3.int main()
4.{
5. int n;cin>>n;
6. while(n--)
7. {
8.  int a[2001],i,j,k=0,l,all=0,m;
9.  cin>>m;
10.  for(i=0;i>a[i];
12.  int a1=a[0];
13.  for(i=1;ia[i])all+=a1-a[i];
21.   if(a1k;i--)
25.  {
26.   if(a1>a[i])all+=a1-a[i];
27.   if(a1

你可能感兴趣的:(百炼:(4074)积水量)