#joi2021yo2c. [joi2021_yo2_c]イベント巡り (Event Hopping)
[joi2021_yo2_c]イベント巡り (Event Hopping)
問題文
IOI 国には 個の町があり,それぞれ と番号がついている.
これらの町では合計 個のイベントが行われる.これらのイベントには から までの番号がついている.イベント () は町 で開催され,開催時刻は時刻 から時刻 までである.ここで は整数である.JOI 君がイベント に参加するためには,時刻 から時刻 までの間,ずっと町 にいる必要がある.
JOI 君はイベント巡りを行うことにした.イベント巡りではいくつかのイベントに参加し,必要ならば町と町の間を移動することもできる.JOI 君は時刻 からイベント巡りを開始する.このとき,好きな町から始めることができる.
JOI 君は町 と町 の間を双方向に移動することができる. つの町の間を移動するのにかかる時間は,JOI 君がその移動を開始する時刻までに参加したイベントの数を として, となる.
イベントと町の間の移動に関する情報が与えられるので,JOI 君が参加できるイベントの数の最大値を求めるプログラムを作成せよ.
制約
- .
- .
- .
- ().
- ().
- ().
- 入力される値はすべて整数である.
小課題
- ( 点) ,.
- ( 点) ,.
- ( 点) .
- ( 点) .
- ( 点) .
- ( 点) 追加の制約はない.
入力
入力は以下の形式で標準入力から与えられる.
出力
標準出力に,JOI 君が参加することのできるイベントの数の最大値を 行で出力せよ.
入力例 1
5 3 0
1 1
1 2
1 10
2 5
2 6
出力例 1
4
例えば,以下のように行動することで,JOI 君は 個のイベントに参加することができる.
- 時刻 において JOI 君は町 にいる.
- 時刻 から時刻 まで町 でイベント に参加する.
- 時刻 から時刻 まで町 でイベント に参加する.
- 時刻 から時刻 まで時間 (\= D + K \\times 2) をかけて町 から町 に移動する.
- 時刻 から時刻 まで町 でイベント に参加する.
- 時刻 から時刻 まで時間 (\= D + K \\times 3) をかけて町 から町 に移動する.
- 時刻 から時刻 まで町 でイベント に参加する.
どのように行動しても 個以上のイベントに参加することはできないため, を出力する.
この入力例はすべての小課題の制約を満たす.
入力例 2
7 2 3
2 2
1 8
1 10
1 11
2 23
2 24
2 25
出力例 2
6
例えば,以下のように行動することで,JOI 君は 個のイベントに参加することができる.
- 時刻 において JOI 君は町 にいる.
- 時刻 から時刻 まで町 でイベント に参加する.
- 時刻 から時刻 まで時間 (\= D + K \\times 1) をかけて町 から町 に移動する.
- 時刻 から時刻 まで町 でイベント に参加する.
- 時刻 から時刻 まで町 でイベント に参加する.
- 時刻 から時刻 まで時間 (\= D + K \\times 3) をかけて町 から町 に移動する.
- 時刻 から時刻 まで町 でイベント に参加する.
- 時刻 から時刻 まで町 でイベント に参加する.
- 時刻 から時刻 まで町 でイベント に参加する.
どのように行動しても 個以上のイベントに参加することはできないため, を出力する.
この入力例は小課題 の制約を満たす.
入力例 3
12 153 0
1 155
2 861
1 646
1 218
2 450
2 56
1 932
2 295
2 863
1 612
2 38
2 768
出力例 3
8
この入力例はすべての小課題の制約を満たす.
入力例 4
15 89 104
1 4379
1 738
1 4862
1 4236
2 1416
1 9905
1 4775
2 4574
2 439
1 3956
1 955
2 8862
2 801
2 2299
2 575
出力例 4
11
この入力例は小課題 の制約を満たす.