题目的要求是在**任意时刻**血量都大于0,所以不能简单的输出随后的m,应该选出所有时刻的最大值
by 梧桐灯 @ 2024-07-02 09:05:56
@[UFO___pmz](/user/913562) 求关
```
#include<bits/stdc++.h>
using namespace std;
const int N=100000005;
int n,a[N],sum[N];
bool cmp(int x){
for (int i=1;i<=n;i++){
x+=a[i];
if (x<=0) break;
}
return x>=0;
}
void work(){
int l=1,r=100000005,ans;
while (l<=r){
int mid=l+r>>1;
if (cmp(mid)) ans=mid,r=mid-1;
else l=mid+1;
}
cout<<ans+1;
}
int main(){
cin>>n;
for (int i=1;i<=n;i++) cin>>a[i];
work();
return 0;
}
```
by BlackWuKong @ 2024-07-10 09:58:14