P0598

[JSOI2007]建筑抢修

[JSOI2007]建筑抢修

小刚在玩 JSOI 提供的一个称之为「建筑抢修」的电脑游戏。

经过了一场激烈的战斗,T 部落消灭了所有 Z 部落的入侵者。但是 T 部落的基地里已经有 nn 个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建筑设施将会完全毁坏。

现在的情况是:T 部落基地里只有一个修理工人,虽然他能瞬间到达任何一个建筑,但是修复每个建筑都需要一定的时间。同时,修理工人修理完一个建筑才能修理下一个建筑,不能同时修理多个建筑。如果某个建筑在一段时间之内没有完全修理完毕,这个建筑就报废了。

你的任务是帮小刚合理地制订一个修理顺序,以抢修尽可能多的建筑。

输入格式

第一行是一个整数 nn。

接下来 nn 行,每行两个整数 T1,T2T_1, T_2,描述一个建筑:修理这个建筑需要 T1T_1 秒,如果在 T2T_2 秒之内还没有修理完成,这个建筑就报废了。

输出格式

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

样例输入

4
100 200
200 1300
1000 1250
2000 3200

样例输出

3

数据范围

  • n<150000n < 150000;
  • T1<T2<maxlongintT_1 < T_2 < \text{maxlongint}。

来源与许可

本题为 JSOI 2007 试题「建筑抢修」,题面与测试数据整理自 BZOJ 1029。

样例 1

输入

4
100 200
200 1300
1000 1250
2000 3200

输出

3