思路
二分1到100000,从小到大查找第一个可以满足条件的数
代码
#include<bits/stdc++.h>
using namespace std;
const int N = 100010;
int a[N];
int n;
bool judge(int x)
{
for(int i=1;i<=n;i++)
{
x=2*x-a[i];
if(x>=100000)return true;
if(x<0)return false;
}
return true;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
int l=1,r=100010;
while(l<r)
{
int mid=(l+r)/2;
if(!judge(mid))l=mid+1;
else r=mid;
}
cout<<l<<endl;
return 0;
}