#include <bits/stdc++.h> using namespace std; #define endl '\n' const int MAXN = 100001; int arr[MAXN]; int n; bool f(int energe, int max){ for(int i = 1; i <= n; i++){ if(energe <= arr[i]){ energe -= arr[i] - energe; }else{ energe += energe - arr[i]; } if(energe >= max){ return true; } if(energe < 0){ return false; } } return true; } int compute(int l, int r, int max){ int m , ans = -1; while(l <= r){ m = l + ((r - l) >> 1); if(f(m, max)){ ans = m; r = m - 1; }else{ l = m + 1; } } return ans; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); while(cin >> n){ int l = 0, r = 0; for(int i = 1; i <= n; i++){ cin >> arr[i]; r = max(r, arr[i]); } cout << compute(l, r, r) << endl; } return 0; }