#ddcc2017finale. [ddcc2017_final_e]足のばし

[ddcc2017_final_e]足のばし

问题描述

高桥君有一枚由NN个顶点组成的树的玩具。每个顶点都有编号1,2,...,N1, 2, ..., N

ii条边连接了顶点ai,bia_i, b_i,长度为11

rmdist(u,v){\\rm dist}(u, v)定义为从顶点uu到顶点vv的最短距离。树的直径定义为rmmax1u<vN(rmdist(u,v)){\\rm max}_{1 ≦ u < v ≦ N}({\\rm dist}(u, v))

青木君对这个玩具进行了一些恶作剧,选择了一条边并将其长度增加了11。已知恶作剧的次数为K1,K2,...,KQK_1, K_2, ..., K_Q

此外,青木君喜欢直径较短的树,所以他进行了操作,使得在所有恶作剧完成后,树的直径尽可能地缩短。

对于每个恶作剧的次数K1,K2,...,KQK_1, K_2, ..., K_Q,请计算完成所有恶作剧后树的直径。

约束条件

  • 3N200,0003 ≦ N ≦ 200,000
  • 1ai,biN1 ≦ a_i, b_i ≦ N
  • 输入是一棵树
  • 1Q200,0001 ≦ Q ≦ 200,000
  • 0K1<K2<...<KQ10180 ≦ K_1 < K_2 < ... < K_Q ≦ 10^{18}

输入

输入以以下格式从标准输入给出。

NN a1a_1 b1b_1 a2a_2 b2b_2 :: aN1a_{N-1} bN1b_{N-1} QQ K1K_1 K2K_2 ... KQK_Q

输出

请输出QQ行。第ii行输出完成恶作剧次数为KiK_i时树的直径。

示例 1

4
1 2
1 3
1 4
10
0 1 2 3 4 5 6 7 8 9

输出示例 1

2
3
4
4
5
6
6
7
8
8

示例 2

9
1 4
2 4
3 4
4 5
5 6
6 7
7 8
8 9
10
0 1 2 3 4 5 6 7 8 9

输出示例 2

6
7
7
7
8
8
8
9
9
9

示例 3

6
6 3
3 4
3 2
3 1
1 5
31
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

输出示例 3

3
4
4
4
5
6
6
6
7
8
8
8
9
10
10
10
11
12
12
12
13
14
14
14
15
16
16
16
17
18
18