#cf17finald. [cf17_final_d]Zabuton

[cf17_final_d]Zabuton

问题描述

在某年的 CODE FESTIVAL 决赛中,共有 NN 名参赛选手。第 ii 名选手的身高和力量分别为 HiH_iPiP_i

Ringo 正在主持一场叠抱枕(zabuton)的游戏。

选手们将按某种顺序排成一排,然后轮流尝试往抱枕堆上叠加抱枕。初始时,堆是空的。当轮到第 ii 名选手时,如果已经叠放的抱枕数量不超过 HiH_i,他/她将往堆上正好叠加 PiP_i 个抱枕。否则,他/她会放弃不做任何操作。

Ringo 想要最大化能够叠加抱枕的选手数量。以最佳选手顺序,有多少名选手可以叠加抱枕?

约束条件

  • 1leqNleq50001 \\leq N \\leq 5000
  • 0leqHileq1090 \\leq H_i \\leq 10^9
  • 1leqPileq1091 \\leq P_i \\leq 10^9

输入

输入以以下格式从标准输入给出:

NN H1H_1 P1P_1 H2H_2 P2P_2 :: HNH_N PNP_N

输出

输出能够叠加抱枕的选手最大数量。


输入示例1

3
0 2
1 3
3 4

输出示例1

2

当选手按照输入的顺序排列时,第一名和第三名选手可以叠加抱枕。

然而,不存在一种顺序,使得三名选手都能叠加抱枕。因此,答案为 22


输入示例2

3
2 4
3 1
4 1

输出示例2

3

当选手按顺序 223311 排列时,他们都能够叠加抱枕。


输入示例3

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

输出示例3

5