class BIT: def __init__(self, A): self.size = len(A) self.bit = [0]*(len(A)+1) for i in range(len(A)): self.add(i, A[i]) def sum(self, i): i += 1 ans = 0 while i > 0: ans += self.bit[i] ans %= MOD i -= -i&i return ans def query(self, l, r): if l == 0: return self.sum(r-1) else: return (self.sum(r-1)-self.sum(l-1))%MOD def add(self, i, x): i += 1 while i <= self.size: self.bit[i] += x self.bit[i] %= MOD i += -i&i MOD = 998244353 POW = [1] iPOW = [1] half = pow(2, -1, MOD) for _ in range(10**5*2): POW.append(POW[-1]*2%MOD) iPOW.append(iPOW[-1]*half%MOD) N = int(input()) P = list(map(int, input().split())) A = sorted(enumerate(P), key=lambda x:x[1]) B = BIT([0]*N) cnt = 0 for idx, p in A: if idx+1 < N: res = B.query(idx+1, N)*POW[idx]%MOD cnt += res cnt %= MOD B.add(idx, iPOW[idx]) cnt *= POW[N-1] cnt %= MOD inversion = 0 B = BIT([0]*N) for p in P: p -= 1 if p+1 < N: inversion += B.query(p+1, N) inversion %= MOD B.add(p, 1) print((inversion*POW[N-1]%MOD-cnt)%MOD)