二分判断能否成功
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e7;
int a[N];
int n;
bool check(ll x)
{
for(int i = 1; i <= n; i ++ )
{
x += x - a[i];
if(x > 2e9) return true;
if(x < 0) return false;
}
return true;
}
int main()
{
cin >> n;
for(int i = 1; i <= n; i ++ )
scanf("%d", &a[i]);
int l = 0, r = 2e9;
while(l < r)
{
ll mid = l + r >> 1;
if(check(mid)) r = mid;
else l = mid + 1;
}
cout << l;
}