#7015. 搭船

搭船

题目描述

有一条河,沿河有 m+1m+1 个村庄,按照次序依次编号为 00mm,相邻村庄之间的距离都是 11

某天早上,船夫在 00 号村庄开始他的工作,当天想要搭船的村民有 nn 个,其中第 ii 个村民要从 aia_i 号村庄搭船到 bib_i 号村庄。完成运输所有村民的工作后,船夫需要将船停到 mm 号村庄上。

船夫的船舱足够大,可以同时搭载任意多名村民。显然,同时搭载多名村民,可以减少重复路程。请帮助船夫计算一下,为了把所有村民运到各自的目的地,在当天的工作中,船只最少需要行走多少距离?

输入格式

第一行:两个整数 nnmm; 第二行到第 n+1n+1 行:第 i+1i+1 行有两个整数表示 aia_ibib_i

输出格式

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

2 10 
2 8 
6 4
14
8 15 
1 12 
3 1 
3 9 
4 2 
7 13 
12 11 
14 11 
14 13
27

数据范围

  • 对于 30%30\%数据:1n301\leq n\leq 303m1033\leq m\leq 10^3
  • 对于 50%50\%数据:1n100001\leq n\leq 100003m1093\leq m\leq 10^9
  • 对于 100%100\%数据:1n3000001\leq n\leq 3000003m1093\leq m\leq 10^9
  • 0ai,bim0\leq a_{i},b_i\leq m