#include #include #include using namespace std; using namespace atcoder; using mint = modint998244353; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf32 1000000001 #define Inf64 1000000000000000001 int main(){ int n; cin>>n; vector p(n); rep(i,n){ cin>>p[i]; p[i]--; } mint ans = 0; { fenwick_tree f(n); rep(i,n){ ans += f.sum(p[i],n); f.add(p[i],1); } ans *= mint(2).pow(n-1); } { fenwick_tree f(n); rep(i,n){ ans -= f.sum(p[i],n) / mint(2).pow(i); f.add(p[i],mint(2).pow(n-1 + i)); } } cout<