题号:NC23179
时间限制:C/C++/Rust/Pascal 5秒,其他语言10秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld
题目描述
小X正在C国旅游。
C国一共有

个城市,城市间有一些长度为

双向道路将他们连接在了一起,每两个城市之间都有且仅有一条路径可以到达。换句话说,这

个城市形成了一棵树。
现在C国建造了

类不同的公园,每类公园都分布在一些不同的城市。
每次小X会从一个城市

出发,并且预先选好了一个公园种类

。他现在想知道如果他想去有这类公园的城市最近需要走多远。
本题强制在线。
请选手注意读入数据对程序运行时间的影响。
输入描述:
第一行三个正整数
,表示城市个数,公园种类数和询问次数。
接下来
行,每行两个正整数
表示一条双向道路。
接下来
行,每行先给出一个正整数
,表示这个点集的大小,接下来给出
个正整数表示这个点集。
接下来

行,每行两个正整数

,表示加密后的这次询问的点和点集编号。
注意:你需要对询问进行解密。
解密方法为:
%5C%25n%2B1)
,
%5C%25m%2B1)

为上一次询问的答案,第一次询问时为0。
输出描述:
一共
行每行一个正整数表示这次询问的答案。
示例1
输入
复制
10 3 5
1 2
1 3
2 4
2 5
2 6
5 8
6 10
3 7
3 9
3 8 2 7
5 1 3 5 7 9
10 1 2 3 4 5 6 7 8 9 10
10 1
10 2
10 3
4 1
2 1
备注:

。
保证读入的数字都在int范围内。