#include<iostream>
using namespace std;
const int N=100010;
int n;
int a[N];
int max1;
bool check(long long t)
{
for(int i=0;i<n;i++)
if(a[i]>t)
{t-=a[i]-t;
if(t<0) return false;
}
else
{
if(t>=max1) return true;
t+=t-a[i];
}
return true;
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{cin>>a[i];
if(max1<a[i]) max1=a[i];
}
long long l=0,r=max1;
while(l<r)
{
long long mid=(l+r)>>1;
if(check(mid))
r=mid;
else
l=mid+1;
// printf("%d %d\n",l,r);
}
printf("%lld\n",l);
}
机器人跳跃
最新推荐文章于 2022-02-23 15:17:05 发布