#joi2021yo2c. [joi2021_yo2_c]イベント巡り (Event Hopping)

[joi2021_yo2_c]イベント巡り (Event Hopping)

問題文

IOI 国には 22 個の町があり,それぞれ 1,21, 2 と番号がついている.

これらの町では合計 NN 個のイベントが行われる.これらのイベントには 11 から NN までの番号がついている.イベント ii (1leqqileqqN1 \\leqq i \\leqq N) は町 PiP_i で開催され,開催時刻は時刻 Si+0.1S_i + 0.1 から時刻 Si+0.9S_i + 0.9 までである.ここで SiS_i は整数である.JOI 君がイベント ii に参加するためには,時刻 Si+0.1S_i + 0.1 から時刻 Si+0.9S_i + 0.9 までの間,ずっと町 PiP_i にいる必要がある.

JOI 君はイベント巡りを行うことにした.イベント巡りではいくつかのイベントに参加し,必要ならば町と町の間を移動することもできる.JOI 君は時刻 00 からイベント巡りを開始する.このとき,好きな町から始めることができる.

JOI 君は町 11 と町 22 の間を双方向に移動することができる.22 つの町の間を移動するのにかかる時間は,JOI 君がその移動を開始する時刻までに参加したイベントの数を jj として,D+KtimesjD + K \\times j となる.

イベントと町の間の移動に関する情報が与えられるので,JOI 君が参加できるイベントの数の最大値を求めるプログラムを作成せよ.

制約

  • 1leqqNleqq200,0001 \\leqq N \\leqq 200\\,000
  • 1leqqDleqq10121 \\leqq D \\leqq 10^{12}
  • 0leqqKleqq10120 \\leqq K \\leqq 10^{12}
  • 1leqqPileqq21 \\leqq P_i \\leqq 2 (1leqqileqqN1 \\leqq i \\leqq N).
  • 1leqqSileqq10121 \\leqq S_i \\leqq 10^{12} (1leqqileqqN1 \\leqq i \\leqq N).
  • SineqSjS_i \\neq S_j (1leqqi<jleqqN1 \\leqq i < j \\leqq N).
  • 入力される値はすべて整数である.

小課題

  1. (88 点) K=0K = 0Nleqq20N \\leqq 20
  2. (1111 点) K=0K = 0Nleqq4,000N \\leqq 4\\,000
  3. (2424 点) K=0K = 0
  4. (1212 点) Nleqq160N \\leqq 160
  5. (2323 点) Nleqq4,000N \\leqq 4\\,000
  6. (2222 点) 追加の制約はない.

入力

入力は以下の形式で標準入力から与えられる.

NN DD KK P1P_1 S1S_1 P2P_2 S2S_2 vdots\\vdots PNP_N SNS_N

出力

標準出力に,JOI 君が参加することのできるイベントの数の最大値を 11 行で出力せよ.


入力例 1

5 3 0
1 1
1 2
1 10
2 5
2 6

出力例 1

4

例えば,以下のように行動することで,JOI 君は 44 個のイベントに参加することができる.

  1. 時刻 00 において JOI 君は町 11 にいる.
  2. 時刻 1.11.1 から時刻 1.91.9 まで町 11 でイベント 11 に参加する.
  3. 時刻 2.12.1 から時刻 2.92.9 まで町 11 でイベント 22 に参加する.
  4. 時刻 33 から時刻 66 まで時間 33 (\= D + K \\times 2) をかけて町 11 から町 22 に移動する.
  5. 時刻 6.16.1 から時刻 6.96.9 まで町 22 でイベント 55 に参加する.
  6. 時刻 77 から時刻 1010 まで時間 33 (\= D + K \\times 3) をかけて町 22 から町 11 に移動する.
  7. 時刻 10.110.1 から時刻 10.910.9 まで町 11 でイベント 33 に参加する.

どのように行動しても 55 個以上のイベントに参加することはできないため,44 を出力する.

この入力例はすべての小課題の制約を満たす.


入力例 2

7 2 3
2 2
1 8
1 10
1 11
2 23
2 24
2 25

出力例 2

6

例えば,以下のように行動することで,JOI 君は 66 個のイベントに参加することができる.

  1. 時刻 00 において JOI 君は町 22 にいる.
  2. 時刻 2.12.1 から時刻 2.92.9 まで町 22 でイベント 11 に参加する.
  3. 時刻 33 から時刻 88 まで時間 55 (\= D + K \\times 1) をかけて町 22 から町 11 に移動する.
  4. 時刻 8.18.1 から時刻 8.98.9 まで町 11 でイベント 22 に参加する.
  5. 時刻 11.111.1 から時刻 11.911.9 まで町 11 でイベント 44 に参加する.
  6. 時刻 1212 から時刻 2323 まで時間 1111 (\= D + K \\times 3) をかけて町 11 から町 22 に移動する.
  7. 時刻 23.123.1 から時刻 23.923.9 まで町 22 でイベント 55 に参加する.
  8. 時刻 24.124.1 から時刻 24.924.9 まで町 22 でイベント 66 に参加する.
  9. 時刻 25.125.1 から時刻 25.925.9 まで町 22 でイベント 77 に参加する.

どのように行動しても 77 個以上のイベントに参加することはできないため,66 を出力する.

この入力例は小課題 4,5,64, 5, 6 の制約を満たす.


入力例 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

この入力例は小課題 4,5,64, 5, 6 の制約を満たす.