#P2106. [USACO07NOV] Cow Hurdles S

[USACO07NOV] Cow Hurdles S

题目描述

Farmer John 想让她的奶牛准备郡级跳跃比赛,Bessie 和她的伙伴们正在练习跨栏。她们很累,所以她们想消耗最少的能量来跨栏。 显然,对于一头奶牛跳过几个矮栏是很容易的,但是高栏却很难。于是,奶牛们总是关心路径上最高的栏的高度。

奶牛的训练场中有 NN 个站台,分别标记为 1,,N1,\dots,N。所有站台之间有 MM 条单向路径,第 ii 条路经是从站台 SiS_i 开始,到站台 EiE_i,其中最高的栏的高度为 HiH_i。无论如何跑,奶牛们都要跨栏。

奶牛们有 TT 个训练任务要完成。第 ii 个任务包含两个数字 AiA_iBiB_i,表示奶牛必须从站台 AiA_i 跑到站台 BiB_i,可以路过别的站台。奶牛们想找一条路径从站台 AiA_i 到站台 BiB_i,使路径上最高的栏的高度最小。 你的任务就是写一个程序,计算出路径上最高的栏的高度的最小值。

输入格式

第一行:三个空格隔开的整数 N,M,TN, M, T

接下来 MM 行:第 ii 行包含三个空格隔开的整数 Si,Ei,HiS_i, E_i, H_i

接下来 TT 行:第 ii 行包含两个空格隔开的整数,表示任务 ii 的起始站台和目标站台 Ai,BiA_i, B_i

输出格式

TT 行:第 ii 行为一个整数,表示任务 ii 路径上最高的栏的高度的最小值。如果无法到达,输出 -1

5 6 3
1 2 12
3 2 8
1 3 5
2 5 3
3 4 4
2 4 8
3 4
1 2
5 1
4
8
-1

提示

对于 100%100\% 的数据,1N3001 \le N \le 3001M2.5×1041 \le M \le 2.5 \times 10^41Hi1×1061 \le H_i \le 1 \times 10^61T4×1041 \le T \le 4 \times 10^41Ai,BiN1 \le A_i,B_i \le N

感谢 @gaozhiyong @Cppsteve 提供翻译