luogu#P4686. [IOI2008] Teleporters

[IOI2008] Teleporters

题目描述

你正在参加一项沿着直线路线自西向东横穿埃及的比赛。开始时你位于这条直线路线的最西端。根据比赛规则,你必须要沿着这条直线路线始终向东行进。

在这条直线路线上有 NN 个传送器。每个传送器都有两个端点。每当你到达某个传送器的两个端点之一时,传送器都会立即将你传送到该传送器的另一个端点(注意,根据你所在的端点位置,传送器能够将你从当前位置向东或者向西传送)。当你被传送到另一个端点之后,你必须继续沿这条直线路线向东行进;你无法避开你前进路上的任何传送器端点。绝不会出现两个端点在同一位置的情形。所有端点都严格位于这条直线路线的起点和终点之间。

每当你被传送一次,你就会获得 11 分。比赛的目标就是获取尽可能多的分数。为使获得的分数最多,允许你在比赛开始前在这条路线上增设 MM 个新的传送器。使用这些新的传送器你也同样可以获得分数。

你可以将这些新传送器的端点设在任何位置上(甚至是非整数坐标点也可以),只要这些坐标点并不出现在已经被另一个端点占用的位置上即可。换句话说,所有传送器的端点位置必须是唯一的。同样,新传送器的端点都必须严格位于这条直线路线的起点和终点之间。

题目可以保证,不管你如何增设这些传送器,你一定可以到达比赛路线的终点。

试编写一个程序,对于给定的 NN 个传送器的端点位置和你可以增设的新传送器的数目 MM,计算你能获得的最高分数。

输入格式

你的程序必须从标准输入中读入下列数据:

  • 11行包含一个整数 NN,表示开始时在路线上的传送器数目;
  • 22行包含一个整数 MM,表示你可以增设的新传送器的最大数目;
  • 随后的 NN 行每行描述一个传送器。第 ii 行描述第 ii 个传送器。每行有两个整数 WiW_iEiE_i,这两个整数分别描述从路线起点到该传送器的两个端点的距离。

对于给定的这些传送器,没有任何两个端点在同一位置上。比赛路线的起点为位置 00,而终点则在位置 20000012\,000\,001 上。

输出格式

你的程序必须向标准输出写一行数据,这行数据只包含一个整数,表示你找到的能获得的最高分数。

3
1
10 11
1 4
2 3
6
3 3 5 7 6 10 1999999 2000000
12

提示

样例 1 说明

上面左图表示一条初始有 33 个传送器的比赛路线的情形。右图表示在增设一个端点分别为 0.50.51.51.5 的新传送器之后的同一比赛路线。

在增设上图所示的新的传送器之后,你的比赛路途如下:

  • 你从位置 00 出发,向东行进。
  • 你到达位于 0.50.5 的传送器端点,并且被传送到另一端点 1.51.5(你获得 11 分)。
  • 你继续向东行进,并且到达位于 22 的传送器端点;你被传送到位于 33 的另一端点(这时你共获得 22 分)。
  • 你到达位于 44 的传送器端点,并且被传送到位于 11 的另一端点(这时你共获得 33 分)。
  • 你到达位于 1.51.5 的传送器端点,并且被传送到位于 0.50.5 的另一端点(这时你共获得 44 分)。
  • 你到达位于 11 的传送器端点,并且被传送到位于 44 的另一端点(这时你共获得 55 分)。
  • 你到达位于 1010 的传送器端点,并且被传送到位于 1111 的另一端点(这时你共获得 66 分)。
  • 你继续行进直到到达比赛的终点,以获得总分为 66 分结束。

数据范围

  • 对于 30%30\% 的数据,N500N \leq 500 并且 M500M \leq 500
  • 对于所有数据,1N1,000,0001 \leq N \leq 1,000,0001M1,000,0001 \leq M \leq 1,000,0001WX<EX2,000,0001 \leq W_X < E_X \leq 2,000,000