第六题 低洼地(di)
【问题描述】
一组数,分别表示地平线的高度变化。高度值为整数,相邻高度用直线连接。找出并统计有多少个可能积水的低洼地?
如图:地高变化为 0 1 0 2 1 2 0 0 2 0
【输入格式】
两行,第一行n(3≤n≤100000),表示有n个数。
第2行连续n个数表示地平线高度变化的数据,保证首尾为0 (0≤高度≤1000) 。
【输出格式】
一个数,可能积水低洼地的数目。
【输入样例】
10
0 1 0 2 1 2 0 0 2 0
【输出样例】
3
代码:
#include<bits/stdc++.h>
using namespace std;
int n,a[999],ans=0;
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=1;i<n-1;i++)
{
if(a[i-1]>a[i]&&a[i+1]>a[i])
{
ans++;
continue;
}
if(a[i-1]>a[i]&&a[i]==a[i+1])
{
for(int j=i;j<n-1;j++)
{
if(a[j]>a[i])
{
i=j;
ans++;
break;
}
}
}
}
cout<<ans;
return 0;
}