atcoder#CF17FINALD. Zabuton

Zabuton

配点 : 700700

問題文

ある年のCODE FESTIVALの本戦には NN 人の参加者が集まりました。 参加者 ii は身長が HiH_i で力が PiP_i です。

りんごさんは参加者に座布団を積むゲームをしてもらおうとしています。

参加者は好きな順番で並び、11 人ずつ座布団を 11 箇所に積んでいきます。 はじめ、座布団は 11 枚も積まれていません。 参加者 ii は、自分の番が回ってきた時にすでに積まれた座布団が HiH_i 枚以下の場合はちょうど PiP_i 枚の座布団を積みます。そうでない場合は諦めて 11 枚も積みません。

りんごさんはできるだけ多くの参加者に座布団を積んで欲しいと思っています。 参加者の並び順を工夫することによって、最大で何人の参加者に座布団を積んでもらうことができるでしょうか?

制約

  • 1N50001 \leq N \leq 5000
  • 0Hi1090 \leq H_i \leq 10^9
  • 1Pi1091 \leq P_i \leq 10^9

入力

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

NN

H1H_1 P1P_1

H2H_2 P2P_2

::

HNH_N PNP_N

出力

座布団を積む参加者の人数の最大値を出力せよ。

3
0 2
1 3
3 4
2

入力の通りの順に参加者が並ぶと、1,31,3 番目の参加者が座布団を積むことができます。

また、33 人全員が座布団を積めるような並び順は存在しないため、答えは 22 人となります。

3
2 4
3 1
4 1
3

22 番、33 番、11 番の順で参加者が並ぶと、全員が座布団を積むことができます。

10
1 3
8 4
8 3
9 1
6 4
2 3
4 2
9 2
8 3
0 1
5