问题 5207 --搭船

5207: 搭船

题目描述

有一条河,沿河有 $m+1$ 个村庄,按照次序依次编号为 $0$ 到 $m$,相邻村庄之间的距离都是 $1$。 某天早上,船夫在 $0$ 号村庄开始他的工作,当天想要搭船的村民有 $n$ 个,其中第 $i$ 个村民要从 $a_i$ 号村庄搭船到 $b_i$ 号村庄。完成运输所有村民的工作后,船夫需要将船停到 $m$ 号村庄上。 船夫的船舱足够大,可以同时搭载任意多名村民。显然,同时搭载多名村民,可以减少重复路程。请帮助船夫计算一下,为了把所有村民运到各自的目的地,在当天的工作中,船只最少需要行走多少距离?

输入

第一行:两个整数 $n$ 和 $m$; 第二行到第 $n+1$ 行:第 $i+1$ 行有两个整数表示 $a_i$ 和 $b_i$。

输出

单个整数:表示船只最少需要行走多少路程才能把所有村民运到他们的目的地。

样例输入输出

输入#1 复制
2 10 
2 8 
6 4
输出#1 复制
14
输入#2 复制
8 15 
1 12 
3 1 
3 9 
4 2 
7 13 
12 11 
14 11 
14 13
输出#2 复制
27

提示

+ 对于 $30\%$数据:$1\leq n\leq 30$ , $3\leq m\leq 10^3$ + 对于 $50\%$数据:$1\leq n\leq 10000$ , $3\leq m\leq 10^9$ + 对于 $100\%$数据:$1\leq n\leq 300000$ , $3\leq m\leq 10^9$ + $0\leq a_{i},b_i\leq m$
序号 标题 作者 发表时间 费用 订购数 操作