有根树问题
时间限制:1秒 内存限制:256M
【问题描述】
给出一棵含 \(N\) 个结点的有根树,结点编号为 \(1..N\),根的编号为 1。请你完成下列任务:
任务1、计算这棵树的深度和度;
任务2、计算某结点 \(x\) 的深度和该结点是否是叶子结点;
任务3、计算某结点 \(y\) 的儿子数量(度)和子孙数量;
任务4、计算某结点 \(z\) 的祖先(依次从根开始输出)。
【输入格式】
第 \(1\) 行一个整数 \(N\),表示树的结点数量;
第 \(2..N\) 行,每行两个正整数 \(x,y(1≤x,y≤N)\),表示 \(x\) 是 \(y\) 的父亲;
第 \(N+1\) 行一个整数 \(x\);
第 \(N+2\) 行一个整数 \(y\);
第 \(N+3\) 行一个整数 \(z\);
【输出格式】
第 1 行:对应任务1,两个整数分别表示给出树 \(T\) 的深度和度;
第 2 行:对应任务2,第一个整数表示给出树 \(T\) 中结点 \(x\) 的深度,第二个为“Yes”或“No”,如果 \(x\) 是叶子结点则输出“Yes”否则输出“No”;
第 3 行:对应任务3,两个整数分别表示给出树 \(T\) 中结点 \(y\) 的儿子数量(度)和子孙数量;
第 4 行:对应任务4,若干整数,从左到右分别表示结点 \(z\) 的祖先。若无祖先则输出0.
【输入输出样例】
Input
10
1 2
7 3
7 4
7 5
1 6
1 7
9 8
7 9
9 10
9
7
10
Output
4 4
3 No
4 6
1 7 9
【数据限制】
\(1 ≤ N ≤ 50000\)。