#include #include using namespace std; using Mint = atcoder::modint998244353; Mint add(Mint a, Mint b) { return a + b; } Mint zero() { return 0; } using Seg = atcoder::segtree; int main() { int N; cin >> N; Seg seg(N), seg2(N); Mint ans = 0; for (int i = 0; i < N; ++i) { int p; cin >> p; --p; ans += seg2.prod(p + 1, N) * Mint(2).pow(N - 1); ans -= seg.prod(p + 1, N) * Mint(2).pow(N - 1 - i); seg.set(p, Mint(2).pow(i)); seg2.set(p, 1); } cout << ans.val() << endl; }