#1783. 「NOIP2018 普及组」摆渡车

「NOIP2018 普及组」摆渡车

题目描述

nn 名同学要乘坐摆渡车从人大附中前往人民大学,第 ii 位同学在第 tit_i 分钟去等车。只有一辆摆渡车在工作,但摆渡车容量可以视为无限大。摆渡车从人大附中出发、把车上的同学送到人民大学、再回到人大附中(去接其他同学),这样往返一趟总共花费 mm 分钟(同学上下车时间忽略不计)。摆渡车要将所有同学都送到人民大学。

凯凯很好奇,如果他能任意安排摆渡车出发的时间,那么这些同学的等车时间之和最小为多少呢?

注意:摆渡车回到人大附中后可以即刻出发。

输入格式

输入文件名为 bus.in

第一行包含两个正整数 n,mn,m,以一个空格分开,分别代表等车人数和摆渡车往返一趟的时间。
第二行包含 nn 个正整数,相邻两数之间以一个空格分隔,第 ii 个非负整数 tit_i 代 表第 ii 个同学到达车站的时刻。

输出格式

输出文件名为 bus.out

输出一行,一个整数,表示所有同学等车时间之和的最小值(单位:分钟)。

样例 1

5 1
3 4 4 3 5
0

同学 11 和同学 44 在第 33 分钟开始等车,等待 00 分钟,在第 33 分钟乘坐摆渡车出发。摆渡车在第 44 分钟回到人大附中。 同学 22 和同学 33 在第 44 分钟开始等车,等待 00 分钟,在第 44 分钟乘坐摆渡车出发。摆渡车在第 55 分钟回到人大附中。 同学 55 在第 55 分钟开始等车,等待 00 分钟,在第 55 分钟乘坐摆渡车出发。 自此所有同学都被送到人民大学。总等待时间为 00

5 5
11 13 1 5 5
4

同学 33 在第 11 分钟开始等车,等待 00 分钟,在第 11 分钟乘坐摆渡车出发。摆渡车在第 66 分钟回到人大附中。 同学 44 和同学 55 在第 55 分钟开始等车,等待 11 分钟,在第 66 分钟乘坐摆渡车出发。摆渡车在第 1111 分钟回到人大附中。 同学 11 在第 1111 分钟开始等车,等待 22 分钟;同学 22 在第 1313 分钟开始等车, 等待 00 分钟。他/她们在第 1313 分钟乘坐摆渡车出发。 自此所有同学都被送到人民大学。总等待时间为 44

可以证明,没有总等待时间小于 44 的方案。

见附加文件中的 bus3.inbus3.ans

数据范围与提示

对于 10%10\% 的数据,n10,m=1,0ti100n \le 10, m = 1, 0 \le t_i \le 100
对于 30%30\% 的数据,n20,m2,0ti100n \le 20, m \le 2, 0 \le t_i \le 100
对于 50%50\% 的数据,n500,m100,0ti104n \le 500, m \le 100, 0 \le t_i \le 10^4
另有 20%20\% 的数据,n500,m10,0ti4×106n \le 500, m \le 10, 0 \le t_i \le 4 \times 10^6
对于 100%100\% 的数据,n500,m100,0ti4×106n \le 500, m \le 100, 0 \le t_i \le 4 \times 10^6