#pragma GCC optimize("Ofast") #pragma GCC target("avx2") char*mmap(); #define RD(v) int v=0;{int c;while(c=*rp++-48,c>=0)v=v*10+c;} char wbuf[20*200000]; #define MAXN 200000 int en[MAXN+1]; int ei[MAXN+1]; int eb[MAXN<<1]; union{ int uv[MAXN<<1]; struct{ int ss1[MAXN+1]; long ss2[MAXN+1]; }; }u; #define uv u.uv #define ss1 u.ss1 #define ss2 u.ss2 void f(int i,int p){ ss1[i]=1; ss2[i]=0; for(int k=0;k