E. Intercity Travelling | Educational Codeforces #47
int n; cin >> n; vector<mint> pw(n + 1), a(n + 1); pw[0] = 1; rep(i, n) { pw[i + 1] = pw[i] * 2; int x; cin >> x; a[i + 1] = x; } mint re, b; rep(i, n) { b = b * 2 + a[i]; re += (b + a[i + 1])*pw[n - 1 - i]; } cout << re << endl;