, 被第几个遍历到
, 的子树有几个点(包括根自己)
, 的子树中最后几个被遍历到的点的

vi dfn(n + 1), sz(n + 1, 1), tout(n + 1);
int idx = 0;
 
void dfs(int u, int fa){
	dfn[u] = ++idx;
	for(int v : G[u]){
		if(v == fa) continue;
		
		dfs(v, u);
		sz[u] += sz[v];
	}
	tout[u] = idx;
}