#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using lint = long long int; long long int INF = 1001001001001001LL; int inf = 1000000007; long long int MOD = 998244353; double PI = 3.1415926535897932; templateinline void chmin(T1 &a,const T2 &b){if(a>b) a=b;} templateinline void chmax(T1 &a,const T2 &b){if(a> n; vector modPow2(n); modPow2[0] = 1; for (int i = 1; i < n; i++) { modPow2[i] = modPow2[i - 1] * 2 % MOD; } lint ans = 0; for (int i = 1; i <= n; i++) { lint a; cin >> a; if (i == 1) { ans += modPow2[i - 1] * a % MOD * modPow2[n - i]; } else { ans += (modPow2[i - 1] + (i - 1) * modPow2[i - 2]) % MOD * a % MOD * modPow2[n - i]; } ans %= MOD; } cout << ans << endl; return 0; }