如今,有许多 App 科技服务,用户可以通过完成日常生活中的任务来获取积分,并赢得一些小奖品。计步器任务是许多 App 科技服务中广泛使用的一种,每天成功步行 $D$ 米即可获得少量积分。
由于每天步行 $D$ 米比想象中更麻烦,为了那些懒得亲自执行任务的人,韩星创立了一家名为“星韩”的初创公司,专门代理计步器任务。星韩首先在贯穿公司大楼东西方向的长路上,以 $1$ 米的间隔安装了储物柜,并给它们编上了整数编号。距离公司大楼东侧 $A$ 米的储物柜编号为 $A$,西侧 $A$ 米的储物柜编号为 $-A$,位于大楼的储物柜编号为 $0$。
你需要从星韩大厦出发,完成所有客户的任务后返回公司。在你开始工作之前,所有客户已经将手机放在了 $X_i$ 号储物柜中。你需要前往 $X_i$ 号储物柜拿起手机,然后移动至少 $D$ 米,再返回 $X_i$ 号储物柜归还手机。你有一个足够大的背包,可以同时携带多部手机移动。你的移动记录会反映为工作记录,因此你只能在道路上移动。
编写一个程序,计算完成所有客户任务并返回所需移动的最小距离。
输入格式
第一行包含两个整数:客户数 $N$ 与完成任务所需的最小步行距离 $D$,以空格分隔。($1 \leq N \leq 1\,000\,000$;$1 \leq D \leq 10^9$)
第二行包含 $N$ 个整数 $X_i$,表示每个客户放置手机的储物柜编号,以空格分隔。($-10^9 \leq X_i \leq 10^9$)
手机的位置可能重叠,也可能与星韩大厦的位置相同。
所有输入均为整数。
输出格式
第一行输出完成所有 $N$ 位客户的任务并返回所需的最小移动距离。
如果答案不是整数,则输出小于或等于答案的最大整数。
样例
输入 1
3 5 -8 1 5
输出 1
36
说明
以下方法是最优的:
- 拿起第 2 位客户的手机。
- 拿起第 3 位客户的手机。
- 移动到星韩大厦东侧 7.5m 处,然后返回并归还第 3 位客户的手机。
- 归还第 2 位客户的手机。
- 拿起第 1 位客户的手机。
- 移动到星韩大厦西侧 10.5m 处,然后返回并归还第 1 位客户的手机。
- 返回星韩大厦。