#2129. Taxi

Taxi

题目描述

贝西正在为农场里的其他奶牛提供出租车服务。奶牛沿着长度为 M(1<=M<=1,000,000,000)\red{M (1 <= M <= 1,000,000,000) }的栅栏聚集在不同的位置。不幸的是,他们已经对目前的位置感到厌烦,每个人都希望沿着栅栏去其他地方。Bessie\red{Bessie }必须在起始位置接她的每个朋友,然后开车送他们到目的地。Bessie\red{Bessie }的车很小,所以她一次只能用车运送一头牛。奶牛可以瞬间进出汽车。

为了节省汽油,Bessie\red{Bessie }想尽量减少她必须开车的次数。给定 N\red{N }头奶牛中每头奶牛的开始和结束位置 (1<=N<=100,000)\red{(1 <= N <= 100,000),}确定 Bessie\red{Bessie }必须做的最少驾驶量。贝西意识到,为 了节省最多的汽油,她可能需要偶尔将一头奶牛放在目的地以外的地方。

Bessie\red{Bessie }从栅栏最左边的位置 0\red{0 }开始,并且必须在栅栏最右边的位置 M\red{M }结束她的旅程。

长度为m\red{m}的栅栏上,有n\red{n}头牛需要坐车前往别的地方,起点和终点分别为ai\red{a_i}bi\red{b_i}。现在一辆出租车从最左端0\red{0}出发,要运送完所有牛,最后到达最右端m\red{m,}求最小 路程。出租车只能一次载一只牛。

输入格式

1\red{1 }行:N\red{N }M\red{M }用空格隔开。

2..1+N\red{2..1+N }行:第 (i+1)\red{(i+1) }行包含两个空格分隔

整数 si\red{s_i }ti(0<=si,ti<=M)\red{t_i (0 <= s_i, t_i <= M),}表示第 i\red{i }头奶牛的起始位置和目标位置。

输出格式

1\red{1 }行:一个整数,表示 Bessie\red{Bessie }必须完成的驾驶总量。请注意,结果可能不适合 32\red{32 }位整数。

样例

输入样例

2 10 
0 9 
6 5

输出样例

12

提示

有两头奶牛等待沿着长度为 10\red{10 }的围栏运输。第一头奶牛想要从位置 0\red{0(}Bessie\red{Bessie }开始的位置)到位置 9\red{9}。第二头奶牛希望从位置 6\red{6 }到位置 5\red{5}

Bessie\red{Bessie }在位置 0\red{0 }捡起第一头奶牛,然后开车到位置 6\red{6}。在那里她放下第一头奶牛,将第二头奶牛送到她的目的地,然后返回拾起第一头奶牛。她放下第一头奶牛,然后把剩下的路开到栅 栏的右侧。