[Ioi2008]Teleporters 传送器
时间限制:10s 空间限制:64MB
题目描述
你正在参加一项沿着直线路线自西向东横穿埃及的比赛。开始时你位于这条直线路线的最西端。根据比赛规则,你必须要沿着这条直线路线始终向东行进。 在这条直线路线上有N 个传送器。每个传送器都有两个端点。每当你到达某个传送器的两个端点之一时,传送器都会立即将你传送到该传送器的另一个端点(注意,根据你所在的端点位置,传送器能够将你从当前位置向东或者向西传送)。当你被传送到另一个端点之后,你必须继续沿这条直线路线向东行进;你无法避开你前进路上的任何传送器端点。绝不会出现两个端点在同一位置的情形。所有端点都严格位于这条直线路线的起点和终点之间。 每当你被传送一次,你就会获得1分。比赛的目标就是获取尽可能多的分数。为使获得的分数最多,允许你在比赛开始前在这条路线上增设M 个新的传送器。使用这些新的传送器你也同样可以获得分数。 你可以将这些新传送器的端点设在任何位置上(甚至是非整数坐标点也可以),只要这些坐标点并不出现在已经被另一个端点占用的位置上即可。换句话说,所有传送器的端点位置必须是唯一的。同样,新传送器的端点都必须严格位于这条直线路线的起点和终点之间。 题目可以保证,不管你如何增设这些传送器,你一定可以到达比赛路线的终点。 任务 试编写一个程序,对于给定的N 个传送器的端点位置和你可以增设的新传送器的数目M ,计算你能获得的最高分数。 限制条件 1 <= 1="" n="" <="1,000,000" 开始时在路线上的传送器的数目="" 你可以增设的新传送器的最大数目="" ex="" 分别为从路线的起点到传送器x="" 的西端点和东端点的距离="" p="">
输入格式
你的程序必须从标准输入中读入下列数据: • 第1行包含一个整数N ,表示开始时在路线上的传送器数目 • 第2行包含一个整数M,表示你可以增设的新传送器的最大数目 • 随后的N 行每行描述一个传送器。第i行描述第i个传送器。每行有两个整数Wi 和 Ei,以一个空格分隔。这两个整数分别描述从路线起点到该传送器的两个端点的距离。 对于给定的这些传送器,没有任何两个端点在同一位置上。比赛路线的起点为位置0,而终点则在位置2,000,001上。
输出格式
你的程序必须向标准输出写一行数据,这行数据只包含一个整数,表示你找到的能获得的最高分数。 评测 在总计30分的测试数据中N <= 500="" 并且="" m="" <="500。" p="">
样例输入
3 1 10 11 1 4 2 3
样例输出
6
提示
题目来源
Day2
=>=>