[SNOI2019]网络
题号: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

输出

复制
9
4
4
9
9
9
示例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

输出

复制
16
16
4
16
9
9
16
16
9
9