CodeForces 599C Day at the Beach

预处理一下i到n的最小值。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;

int n;
int a[100000+10];
int Min[100000+10];
int ans;

int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++) scanf("%d",&a[i]);
    Min[n]=a[n]; Min[n+1]=1e9+7;
    for(int i=n-1;i>=1;i--) Min[i]=min(Min[i+1],a[i]);

    int pre=-1;

    for(int i=1;i<=n;i++)
    {
        pre=max(pre,a[i]);
        if(pre<=Min[i+1])
        {
            ans++;
            pre=-1;
        }
    }
    printf("%d\n",ans);
    return 0;
}

 

posted @ 2016-05-07 20:42  Fighting_Heart  阅读(151)  评论(0编辑  收藏  举报