感觉用二分更麻烦,这题用前缀和不是更简单么。
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int n,ans;
int a[100005];
int main() {
cin >> n;
for(int i = 1,v;i <= n;i++) {
scanf("%d",&v);
a[i] += a[i-1]+v;//计算前缀和
ans = min(ans,a[i]);
//cout << a[i] << endl;
}
cout <<ans*-1+1;
return 0;
}