#include using namespace std; #define int long long #define vi vector #define ii pair #define fi first #define sc second #define stoi stoll #define popcnt __builtin_popcount #define getbit(x, k) ((x >> k) & 1) #define all(x) (x).begin(),(x).end() #define FOR(i,j,k) for(int i=j; i> n; int a[n+1],b[n+1],c[n+1]; FOR(i,0,n+1) cin >> a[i]; if (a[0] > 1){ cout << -1; return; } c[n] = a[n]; for (int i = n-1; i >= 0; i--){ c[i] = c[i+1] + a[i]; } b[0] = 1 - a[0]; FOR(i,1,n+1){ if (a[i] > b[i-1]*2){ cout << -1; return; } b[i] = min(c[i+1],b[i-1]*2 - a[i]); //look2(c[i+1],b[i-1]*2 - a[i]) if (a[i] + b[i] < b[i-1]){ cout << -1; return; } } //FOR(i,0,n+1) look2(a[i],b[i]); int s = a[n]; FOR(i,0,n) s += a[i] + b[i]; cout << s; } signed main() { cin.tie(0)->sync_with_stdio(0); freopen("in", "r", stdin); freopen("out", "w", stdout); int T = 1; // cin >> T; while (T--) { solve(); cout << '\n'; } cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n"; }