#P5494. Taxi

Taxi

题目描述

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

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

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

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

输入格式

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

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

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

输出格式

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

样例

输入样例

2 10 
0 9 
6 5

输出样例

12

提示

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

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