#include #include using namespace std; using ll = long long; #define rep(i,n) for(int i=0;i<(int)(n);i++) using mint = atcoder::modint998244353; using S = tuple; S op(S a,S b){ auto[x1,y1,z1]=a; auto[x2,y2,z2]=b; return {x1+x2,y1+y2,z1+z2}; } S e(){ return {0,0,0}; } using segtree = atcoder::segtree; int main(){ int n; cin>>n; vector a(n); rep(i,n) cin>>a.at(i); segtree seg(n+1); seg.set(0,{1,1,0}); rep(i,n){ auto[sm,nm,ans]=seg.prod(0,i+1); ans+=sm*a.at(i); sm+=nm; seg.set(i+1,{sm,nm,ans}); } auto[sm,nm,ans]=seg.get(n); cout<