Divide the Sequence (贪心)

时间:2021-03-09 04:56:25

  题意:求将一串数据尽可能多分成所有前缀和大于0的连续子串。

  思路:由于是要求所有前缀和大于0,那么只要从后往前推就好了。

#include<bits/stdc++.h>
using namespace std; const int maxn = 1e6 + ;
long long arr[maxn], n; int main(){
while(~scanf("%d", &n)){
for(int i = ; i < n; i ++) scanf("%lld", &arr[i]);
int ans = ;
long long sum = ;
for(int i = n - ; i >= ; i --) {
sum += arr[i];
if(sum >= ){
ans ++;
sum = ;
}
}
printf("%d\n",ans);
}
return ;
}