题目描述
圣诞节到了,班级里一共B位同学(1≤B≤25000),他们准备互送礼物。他们分散居住在 N(2×B≤N≤50000) 个村庄,编号 1 到 N,村庄之间有 M(N−1≤M≤100000) 条双向道路,第 i 条道路连接村庄 Ri 和 Si(1≤Ri≤N,1≤Si≤N),这条道路的长度是 Li(1≤Li≤2000)。
居住在村庄 Pi 的同学 X (1≤Pi≤N),想送一份圣诞礼物给居住在农场 Qi(1≤Qi≤N) 的同学 Y,但是同学X不能直接去到村庄Qi,他必须先到位于 1号村庄的礼物店购买礼物,然后再送给同学Y。你的任务是:计算所有送礼物的同学至少需要走多远的路程?
输入格式
输入文件名:gift.in
第一行三个整数 N,M,B。
第 2 至 M+1 行,每行 3 个整数 Ri,Si,Li。
第 M+2 至 M+B+1 行,进行 B 次询问,每行 2 个整数 Pi,Qi。
输出格式
输出文件名:gift.out
对于每次询问输出一个整数,即答案,如果村庄Pi无法到达村庄Qi,输出“no”。
输入输出样例
输入样例1:
6 7 3
1 2 3
5 4 3
3 1 1
6 1 9
3 4 2
1 4 4
3 2 2
2 4
5 1
3 6
画写样例1:
6
6
10
最短路问题:怎么做,求助大佬!