void Add(int x,int y) {
cnt++;a[cnt].to = y;a[cnt].next = h[x];h[x] = cnt;
}
void modify(int &rt,int pre,int pos,int l=1,int r=b[0]) {
rt = ++cnt;lc[rt] = lc[pre],rc[rt] = rc[pre];sum[rt] = sum[pre]+1;
if(l == r)return;
int mid = l+r>>1;
pos<=mid?modify(lc[rt],lc[pre],pos,l,mid):modify(rc[rt],rc[pre],pos,mid+1,r);
}
rt,可能是cnt用混了