二分样例过了,0分求改
查看原帖
二分样例过了,0分求改
794188
furina_1013楼主2024/5/3 10:28
#include<bits/stdc++.h>
using namespace std;
int n;
int a[100005];
bool ch(int x)
{
	for(int i=1;i<=n;i++)
	{
		x+=a[i];
		if(x<=0)return false;
	}
	return true;
}
int main()
{
	cin>>n;
	int r;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		if(a[i]<=0)r+=abs(a[i]);
	}
	int l=0,mid,ans;
	r+=100;
	while(l<=r)
	{
		mid=(l+r)/2;
		if(ch(mid))
		{
			r=mid-1;
			ans=mid;
		}
		else
		{
			l=mid+1;
		} 
	
	}
	cout<<ans;
	return 0;
}  
2024/5/3 10:28
加载中...