Codeforces Round #332 (Div. 2) C. Day at the Beach

题意:就是给一个序列,然后划分区间,每个区间自己排序之后的结果和整体排序的结果是一样的,问最多划分多少区间。

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxm=1e5+10;
int a[maxm];
int b[maxm];
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        for(int i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
            b[i]=a[i];
        }
        sort(b,b+n);
        int dif=0;
        int cnt=0;
        for(int i=0;i<n;i++)
        {
            dif+=(b[i]-a[i]);
            if(dif==0)
            {
                cnt++;
            }
        }
        printf("%d\n",cnt);
    }
    return 0;
}


你可能感兴趣的:(Codeforces Round #332 (Div. 2) C. Day at the Beach)