Ssyze's Hard Drive
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld

题目描述

Ssyze 感觉自己电脑太慢了,在学习操作系统后,他觉得问题出在硬盘上。

Ssyze 还在使用古老的机械硬盘。为了访问用户需要的数据,这种机械硬盘使用磁头在磁道间进行寻道。当用户请求访问一批磁道时,磁头可以按任意顺序访问这些磁道,并将磁道上的数据读取给用户。磁头从位置 x 移动到位置 y 所需的寻道距离为 |y-x|。

Ssyze 觉得自己的机械硬盘寻道时间太长了。为了证明他的观点,他必须计算出最短寻道时间。

现在给定 n 个磁道的位置,以及磁头的初始位置 s ,他想知道磁头走遍所有磁道的最短路程是多少。

输入描述:

第一行有两个整数n, s ,分别表示需要寻道的磁道数量和磁头的初始位置。

第二行有 n 个整数 , 分别表示每个需要寻道的磁道所在的位置。

输出描述:

在一行输出一个整数,表示最短的寻道距离和。
示例1

输入

复制
5 2
5 6 5 2 1

输出

复制
6

说明

在样例中,一种符合最短寻道路径和的磁头访问顺序为依次访问磁道 2, 1, 5, 5, 6。

在这种访问顺序下,磁头每次寻道的距离分别为 0, 1, 4, 0, 1,寻道距离和为 6。