#include <bits/stdc++.h>
using namespace std;
//const int MOD=1e9+7;
const int MOD=998244353;
const int INF=1e9;
const long long LINF=1e18;
#define int long long
//template
template <typename T>
void fin(T a){
  cout<<a<<endl;
  exit(0);
}
int pw(int n,int k){
  if(k<0)return pw(n,k+MOD-1);
  int res=1;
  while(k){
    if(k&1)res*=n;res%=MOD;
    n*=n;n%=MOD;
    k>>=1;
  }
  return res;
}
//main
signed main(){
  int N;cin>>N;
  std::vector<int> x(N);
  for(int i=0;i<N;i++)cin>>x[i];
  int ans=0;
  for(int i=0;i<N;i++){
    ans+=(x[i]*pw(1+x[i],i)%MOD)*pw(2,N-i-1)%MOD;
    ans%=MOD;
  }
  fin(ans);
}

