bzoj#P2167. 公交车站

公交车站

题目描述

Z 市交通不发达,所有公交路线覆盖的边竟然一个环也不包含,甚至该市的公交路线有可能会分为几个互不连通的块,这可真是不可思议。

有一天,你突然听到一条消息,说你的 mm 个同学被困在了 Z 市里,他们分别要从他们当前所在的点 aia_i 移动到他们想去的点 bib_i,于是你立刻调集资料,了解了 Z 市的形状和公交路线的分布,现在你要算出每个人到达目的地最少要换多少次车,或者告知那个人不能仅用公交车达到目的地。

(修者按:在公交线路的中途可以上下车,另,本题与 CF983E NN country 完全相同,并不确定是否有版权问题。)

输入格式

输入包含若干行,第一行为三个正整数 n,T,mn,T,m,分别表示站点数,公交路线数和同学的数量,站点的编号为 1,2,3,,n1,2,3,\dots,n

接下来 n1n-1 行,每行两个正整数 x,yx,y,表示站点 xx 和站点 yy 之间有一条道路,事实上构成了一棵树。

接下来 TT 行,每行两个正整数 s,ts,t,表示有一条公交路线的起点站为 ss,终点站为 tt(反过来也有,线路是双向的,不用再输入了)。

最后 mm 行,每行同样有两个正整数 a,ba,b,表示该同学想从站点 aa 到站点 bb.

输出格式

输出包含 mm 行,每行为一个整数,表示对相应同学的反馈。

如果这个整数是 1-1,表示该人不能仅用公交车达到目的地。 否则这是一个非负整数,表示该人需要换车的最少次数。

样例输入

7 3 2
1 2
1 3
2 4
2 5
3 6
3 7
3 1
4 5
6 7
1 6
4 7

样例输出

1
-1

样例说明

如果把公交线路按输入的顺序依次编号,从 1166,只需先乘 11 路车从 1133,然后换乘 33 路从 3366 即可,而从 4477 却无法仅用公交车,因为没有任何一路车覆盖 212\rightarrow 1 这条路。

数据规模与约定

25%25\% 的数据满足,n,T,m103n,T,m\leq 10^3

另外 25%25\% 的数据满足,Z 市是一条链;

还有另外 25%25\% 的数据满足,如果 Z 市以 11 为根,那么每个公交线路的起点和终点一定是祖孙关系;

100%100\% 的数据满足,n,T,m1×104n,T,m\leq 1\times 10^4