题解 P1317 【低洼地】

· · 题解

分析一下题目:

主要是要找到两边都低的就可以+1;

所以先找到小于左边的,再找小于右边的:

#include<iostream>
using namespace std;

int n,a[10010],ans;//a存高度,ans记答案

int main(){
    cin>>n;
    for(int i=0;i<n;i++)//读入
        cin>>a[i];
    for(int i=1;i<n;i++)//开始查找
        if(a[i-1]>a[i]){//当找到比左边高的开始判断
            while(a[i]>=a[i+1]&&i<n-1)//如果右边还是低的话直接看下一个,直到没有或找到比右边低的
                i++;
            if(i!=n-1) ans++;
        }
    cout<<ans;//最后输出答案
    return 0;
}

萌新代码,不喜勿喷