#include <iostream>
#include <algorithm>
using namespace std;
const int N = 100010;
int n;
int h[N];
bool check(int e) {
for (int i = 1; i <= n; i ++) {
e = e * 2 - h[i];
//能量已经比最大的都大了,后面就不会衰减了,直接返回,不返回可能一直加甚至溢出为负然后就错了
if (e >= N) return true;
if (e < 0) return false;
}
return true;
}
int main() {
cin >> n;
for (int i = 1; i <= n; i ++) cin >> h[i];
int l = 0, r = 100000;
while (l < r) {
int mid = l + r >> 1;
if (check(mid)) r = mid;
else l = mid + 1;
}
cout << l << endl;
return 0;
}
```