Z市交通不发达,所有公交路线覆盖的边竟然一个环也不包含,甚至该市的公交路线有可能会分为几个互不连通的块,这可真是不可思议。有一天,你突然听到一条消息,说你的M个同学被困在了Z市里,他们分别要从他们当前所在的点ai移动到他们想去的点bi.于是你立刻调集资料,了解了Z市的形状和公交路线的分布,现在你要算出每个人到达目的地最少要换多少次车,或者告知那个人不能仅用公交车达到目的地。
F.A.Qs | Home | ProblemSet | Status | Ranklist | Contest | Login | Register | 捐赠本站 |
---|
Z市交通不发达,所有公交路线覆盖的边竟然一个环也不包含,甚至该市的公交路线有可能会分为几个互不连通的块,这可真是不可思议。有一天,你突然听到一条消息,说你的M个同学被困在了Z市里,他们分别要从他们当前所在的点ai移动到他们想去的点bi.于是你立刻调集资料,了解了Z市的形状和公交路线的分布,现在你要算出每个人到达目的地最少要换多少次车,或者告知那个人不能仅用公交车达到目的地。
输入包含若干行,第一行为三个正整数N,T,M,分别表示站点数,公交路线数和同学的数量,站点的编号为1,2,3,…,N。 接下来N-1行,每行两个正整数x,y,表示站点x和站点y之间有一条道路,事实上构成了一棵树。 接下来T行,每行两个正整数s,t,表示有一条公交路线的起点站为s,终点站为t(反过来也有,线路是双向的,不用再输入了)。最后M行,每行同样有两个正整数a,b,表示该同学想从站点a到站点b.
输出包含M行,每行为一个整数,表示对相应同学的反馈。 如果这个整数是-1,表示该人不能仅用公交车达到目的地。 否则这是一个非负整数,表示该人需要换车的最少次数。
25%的数据满足,N,T,M≤1000; 另外25%的数据满足,Z市是一条链; 还有另外25%的数据满足,如果Z市以1为根,那么每个公交线路的起点和终点一定是祖孙关系; 100%的数据满足,N,T,M≤10000.