题号:NC50794
时间限制:C/C++/Rust/Pascal 4秒,其他语言8秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld
题目描述
有n个数据中心,编号为

。它们被n-1条光缆连通,形成一棵树。
每条光缆传输数据时有1单位时间的延迟,两个数据中心之间的延迟为连接它们的光缆的延迟之和。
现在要在这n个数据中心中选若干个作为通讯站,要求任意两个通讯站之间的延迟不超过d。设选出的通讯站为

,则通讯总延迟为这k个通讯站两两之间的延迟之和。
现在有q次询问,每次选定一个数据中心u,你需要求出:如果u是一个通讯站,最大可能的通讯总延迟是多少。
输入描述:
第一行两个自然数n,d,分别表示数据中心的个数和两个通讯站之间最大允许的延迟。
接下来n-1行每行两个正整数u,v表示u和v之间有一条光缆。
接下来一行一个正整数q表示询问次数。
接下来q行每行一个正整数u表示询问中选定的通讯站。
输出描述:
输出共q行,每行一个整数表示该次询问的答案。
示例1
输入
复制
6 2
1 2
2 3
1 4
4 5
4 6
6
1
2
3
4
5
6
示例2
输入
复制
10 2
1 2
1 3
2 4
4 5
4 6
2 7
2 8
7 9
7 10
10
1
2
3
4
5
6
7
8
9
10