题意:求将一串数据尽可能多分成所有前缀和大于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 ;
}