문제
ボリビアの首都であるラパスは観光地であるとともに,ミ・テレフェリコ (Mi Teleférico) というロープウェイ路線網でも有名である.あなたはラパスに観光に来ており,できるだけ多くの場所を観光したいと思っている.ここで,現実を単純化した次のような状況設定を考えたい.
ラパスには 個のロープウェイ駅があり,標高が低い順に から までの番号が付けられている.また, 個の一方通行の路線があり, から までの番号が付けられている.さらに, 個のロープウェイ会社があり, から までの番号が付けられている.各路線は つの会社によって管理されている.路線 () は駅 から駅 に向かって運行しており,会社 によって管理されている.ここで,路線は必ず標高の低い駅から標高の高い駅に向かって運行している.すなわち, が成立している.
利便性のために,ラパスの交通局はフリーパスを発行した.それぞれのフリーパスには を満たす つの整数 が書かれており,会社 によって管理されている路線に乗ることができる.すなわち, を満たす整数 について を満たすならば路線 に乗ることができる.ここで, つのフリーパスを複数の路線で使うことも可能である.このフリーパスをフリーパス とする.
さて,ラパスに から までの番号が付けられた 人の観光客が訪れた.観光客 () はフリーパス と,現金 ボリビアーノを持っている.
観光客の目標は,持っているフリーパスを使って乗ることができる路線のみを用いて,駅 から移動できない駅がないようにすることである.そのために,観光客 () は以下の手順で表される交換を行うことができる.ただし,各観光客について,交換は高々 回しか行うことができない.
- を満たす つの整数 を決める.
- フリーパス とフリーパス を交換する.手数料として ボリビアーノを要する.
あなたの目的は,それぞれの観光客について,持っている現金の範囲内で目標を達成することができるかを判定することである.
路線と観光客の情報が与えられたとき,それぞれの観光客について,持っている現金の範囲内で目標を達成することができるかを判定するプログラムを作成せよ.
입력
入力は以下の形式で標準入力から与えられる.
N M P
A_1 B_1 C_1
A_2 B_2 C_2
...
A_M B_M C_M
Q
L_1 R_1 X_1
L_2 R_2 X_2
...
L_Q R_Q X_Q
출력
標準出力に 行で出力せよ. 行目 () には,観光客 が目標を達成することができる場合は Yes を,そうでない場合は No を出力せよ.
제한
- .
- .
- .
- ().
- ().
- .
- ().
- ().
- 入力される値はすべて整数である.
서브태스크
- (7 점) ,,, ().
- (8 점) .
- (11 점) .
- (23 점) , ().
- (9 점) .
- (22 점) ,.
- (20 점) 追加の制約はない.
예제 입력 1
4 6 10
1 2 3
2 4 7
1 2 6
2 3 5
3 4 2
3 4 8
4
3 7 0
5 6 0
3 4 0
1 9 0
예제 출력 1
Yes
No
No
Yes
まず,観光客 については,最初フリーパス と現金 ボリビアーノを持っている.この観光客は,フリーパスの交換を行わないことで目標を達成できる.なぜなら,フリーパス により乗ることができる路線は の つであり,この つの路線を用いて,以下のように駅 から各駅に移動することができるからである.
- 路線 を用いることで,駅 と移動することができる.
- 路線 をこの順に用いることで,駅 と移動することができる.
- 路線 をこの順に用いることで,駅 と移動することができる.
したがって, 行目に Yes を出力する.
次に,観光客 については,最初フリーパス と現金 ボリビアーノを持っているが,この観光客は目標を達成することができない.なぜなら,フリーパス により乗ることができる路線は路線 の つのみであり,この つの路線を用いて,駅 から駅 へ移動することができないからである.また,現金を ボリビアーノしか持っていないため,異なるフリーパスと交換することができないからである.
したがって, 行目に No を出力する.
さらに,観光客 については目標を達成することができず,観光客 については目標を達成することができるため, 行目に No を出力し, 行目に Yes を出力する.
この入力例はすべての小課題の制約を満たす.
예제 입력 2
4 6 10
1 2 3
2 4 7
1 2 6
2 3 5
3 4 2
3 4 8
3
5 6 10
3 4 1
7 8 3
예제 출력 2
Yes
No
Yes
路線の情報は入力例 と同じである.
まず,観光客 については最初フリーパス と現金 ボリビアーノを持っている.この観光客は,フリーパスの交換を次のように行うことで目標を達成できる.
- を満たす つの整数として と決める.
- フリーパス とフリーパス を交換する.手数料として ボリビアーノを要する.
したがって, 行目に Yes を出力する.
次に,観光客 については最初フリーパス と現金 ボリビアーノを持っている.この観光客はどのようなフリーパスの交換を行っても,目標を達成することができない.
したがって, 行目に No を出力する.
さらに,観光客 については目標を達成することができるため, 行目に Yes を出力する.
この入力例は小課題 の制約を満たす.
예제 입력 3
3 1 1000000000
1 2 6
1
1 1000000000 1000000000
예제 출력 3
No
この路線において,駅 から駅 へ移動することができない.したがって,フリーパスによらず,観光客は目標を達成することはできない.
この入力例は小課題 の制約を満たす.
예제 입력 4
5 9 2000
2 3 1814
2 3 457
1 2 1226
3 4 1354
1 5 1050
1 2 1725
2 3 1383
1 5 1626
1 4 1795
5
850 1872 128
82 428 1217
487 924 573
1639 1926 202
202 420 25
예제 출력 4
Yes
Yes
Yes
Yes
No
この入力例は小課題 の制約を満たす.
코드를 제출하려면 로그인이 필요합니다.
로그인