#include <bits/stdc++.h>
using namespace std;
long long p2[1000010];
long long inv2;
void getpow2(int n) {
  p2[0] = 1;
  p2[1] = 1;
  for (int i = 1; i < n; i++) {
    p2[i + 1] = (p2[i] * 2) % 998244353;
  }
}
long long pow2(int n) {
  if (n == -1)
    return 499122177;
  else
    return p2[n];
}
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  int n;
  cin >> n;
  getpow2(n);
  long long u = 0;
  for (int i = 0; i < n; i++) {
    u += (pow2(i) * pow2(n - i)) % 998244353;
    u %= 998244353;
  }
  long long ans = 0;
  for (int i = 0; i < n; i++) {
    long long k;
    cin >> k;
    ans += k * u;
    ans = (ans % 998244353 + 998244353) % 998244353;
    u -= pow2(n - i - 1);
    u = (((u % 998244353 + 998244353) % 998244353) * pow2(-1)) % 998244353;
  }
  cout << (ans % 998244353 + 998244353) % 998244353 << endl;
  return 0;
}
