L2-3 迷路了吗
题号:NC219813
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

Bear_2 又又又打算出门旅游了,他所在的地方有 n 个城市,城市之间由 m 条双向道路连接,每条道路都有各自的长度,保证城市之间两两可达。
Bear_2 小小的脑袋里有着大大的问号,他想知道他从城市 S 出发去往城市 T ,中间路过的城市 X 是否是城市 S 到城市 T 最短路中可能经过的城市,因为最短路可能有多条,只要城市 X 在其中一条的最短路径上就是符合的。
Bear_2 一共会问 Q 次,每次都要请你做出回答。

输入描述:

第一行输入两个正整数 n,m,Q(1<=n<=100,1<=m<=n*(n-1)/2,1<=Q<=1000000) 分别表示城市的数量,道路的数量和询问的数量
之后的 m 行,每行输入三个正整数 u,v,w(1<u,v<=n,1<=w<=10000) 表示城市 u 到城市 v 有一条双向道路长为 w
之后的 Q 行,每行输入三个正整数 S,T,X(1<=S,T,X<=n) 表示询问城市 X 是否是城市 S 到城市 T 最短路中可能经过的城市

输出描述:

输出 Q 行,如果城市 X 是城市 S 到城市 T 最短路中可能经过的城市,则在一行内输出“Yes”,否则输出“No”(不含双引号)
示例1

输入

复制
5 7 3
1 2 2
1 3 4
1 5 3
2 4 1
2 5 2
3 5 1
4 5 5
1 5 2
2 3 1
2 3 5

输出

复制
No
No
Yes