#define MD 998244353 Mint a[2d5],b[],z; graph g; void f1(ll i,ll p){ Mint d=1; rep[g.edge[i]](j,g.es[i]){ if(j!=p){ f1(j,i); d+=b[j]; } } b[i]=a[i]*d; } void f3(ll i,ll p){ Mint x=1,y; rep[g.edge[i]](j,g.es[i]){ if(j!=p){ f3(j,i); y+=x*b[j]; x+=b[j]; } } z+=y*a[i]; } { ll@n; rd(a(n)); int@(u,v)--[n-1]; g.setEdge(n,n-1,u,v); f1(0,0); f3(0,0); wt(z); }