传送门:
http://codeforces.com/problemset/problem/599/C
题意:
将数字分组排序后,使得局部有序且整体有序
很明显的前缀和问题嘛!!
求最大的划分数!!!!!!!
同样本道题目的终态肯定是确定的,即从小到大的序列,然后只要这段区间内的和是相等的那么就ok了
前缀和匹配一下就好了 !!!
前缀和每相等一次,就表明又多了一个分组!!
大SB题
code:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn=1e5+10;
int a[maxn];int n;ll sum[maxn];ll summ[maxn];
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
sum[i]=sum[i-1]+a[i];
}
sort(a+1,a+1+n);
int ans=0;
for(int i=1;i<=n;i++){
summ[i]=summ[i-1]+a[i];
if(summ[i]==sum[i]) ans++;
}
printf("%d\n",ans);
return 0;
}