#include <bits/stdc++.h>
using namespace std;
int n;
long long s[1123456];
long long pw[1123456];
long long ans;
void add(long long x) {
  ans += x;
  if (ans >= 998244353) ans -= 998244353;
}
int main() {
  scanf("%d", &n);
  s[0] = 0;
  for (int i = 1; i <= n; i++) {
    int x;
    scanf("%d", &x);
    s[i] = (s[i - 1] + x) % 998244353;
  }
  pw[0] = 1;
  for (int i = 1; i <= n; i++) pw[i] = pw[i - 1] * 2 % 998244353;
  ans = 0;
  for (int len = 1; len <= n; len++) {
    if (n - len - 2 >= 0)
      add(s[len] * (n - len - 1) % 998244353 * pw[n - len - 2] % 998244353);
    if (n == len)
      add(s[len]);
    else
      add(2 * s[len] * pw[n - len - 1] % 998244353);
  }
  printf("%lld\n", ans);
  return 0;
}
