#P3076. [USACO13FEB] Taxi G

[USACO13FEB] Taxi G

题目描述

在长度为 MM 的栅栏上,有 NN 头牛需要坐车前往别的地方,起点和终点分别为 aia_{i}bib_{i}。现在一辆出租车从最左端 00 出发,要运送完所有牛,最后到达最右端 MM,求最小路程。出租车只能一次载一只牛。

注意:你可以中途将所载的牛放下去,再载别的牛,可以通过样例辅助理解。

输入格式

第一行输入两个正整数 N,MN,M,表示牛的数量和栅栏的长度。

接下来 NN 行,每行输入两个正整数 ai,bia_{i},b_{i},表示第 ii 头牛的起点和目的地。

输出格式

输出共一行,输出一个正整数,表示所求的最短路程。

2 10 
0 9 
6 5 

12 

提示

样例解释

在样例中,有两头牛在一段长度为 1010 的栅栏边上等车。第一头牛想从位置 00(出租车的起点所在的位置)到位置 99。第二头牛希望从位置 66 到位置 55

出租车在位置 00 接上第一头牛,然后到达位置 66。在那里,出租车先放下第一头牛,再把第二头牛送到它的目的地,然后返回去接第一头牛。出租车把第一头牛送到目的地后,再开车沿栅栏到达右侧。

数据范围与约定

对于 100%100\% 的数据,保证 1N1051 \le N \le 10^{5}1ai,biM1091 \le a_{i},b_{i} \le M \le 10^{9}