Problem6631--[JSOI2007]建筑抢修

6631: [JSOI2007]建筑抢修

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

小刚在玩 JSOI 提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T 部落消灭了所有 z 部落的入侵者。但是 T 部落的基地里已经有 $N$ 个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建筑设施将会完全毁坏。
现在的情况是:T 部落基地里只有一个修理工人,虽然他能瞬间到达任何一个建筑,但是修复每个建筑都需要一定的时间。同时,修理工人修理完一个建筑才能修理下一个建筑,不能同时修理多个建筑。
如果某个建筑在一段时间之内没有完全修理完毕,这个建筑就报废了。
你的任务是帮小刚合理的制订一个修理顺序,以抢修尽可能多的建筑。

Input

第一行是一个整数 $N\ (1 \leq N \leq 150,000)$。
接下来 $N$ 行每行两个整数 $T_1,T_2$,描述一个建筑:修理这个建筑需要 $T_1$ 秒,如果在 $T_2$ 秒之内还没有修理完成,这个建筑就报废了。
$T_1, T_2$ 不会超过 long long 范围。

Output

输出一个整数 $S$,表示最多可以抢修 $S$个建筑。

Sample 1 Input

4
100 200
200 1300
1000 1250
2000 3200

Sample 1 Output

3
先修第 $1$ 个建筑,这样耗时 $100$,时间来到 $100$。
再修第 $2$ 个建筑,这样耗时 $200$,时间来到 $300$。
再修第 $3$ 个建筑或者第 $4$ 个建筑都可以。
但是不管如何选择,没法同时完成修理这两个建筑。

Sample 2 Input

6
10 295
30  206
100 100
80 200
40  220
50 290

Sample 2 Output

5

HINT

题目来源:牛客网

Source/Category