无根树问题
时间限制:1秒 内存限制:256M
【问题描述】
给出一棵含 \(N\) 个结点的无根树,结点编号为 \(1..N\)。请你完成下列任务:
任务1、计算这棵树的深度和度;
任务2、计算某结点 \(x\) 的深度和该结点是否是叶子结点;
任务3、计算某结点 \(y\) 的儿子数量(度)和子孙数量;
任务4、计算某结点 \(z\) 的祖先(依次从根开始输出)。
【输入格式】
第\(1\)行一个整数是\(N(<=50000)\),表示树的结点数量;
第\(2..N\)行,每行两个正整数 \(x,y(1<=x,y<=N)\),表示结点\(x\)和\(y\)之间有一条树边;
第\(N+1\)行一个整数\(root\),指明在假设指定根结点为\(root\)的时候,完成题目描述中的\(4\)个任务;
第\(N+2\)行一个整数\(x\);
第\(N+3\)行一个整数\(y\);
第\(N+4\)行一个整数\(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
2
9
1
10
Output
5 4
4 No
2 8
2 1 7 9
【数据限制】
\(1<N≤50,000\)。