Alice 想要通过通信信道向 Bob 发送 $n$ 条消息。第 $i$ 条消息需要 $t_i$ 个时间步来发送。在每个整数时间步,Alice 可以开始发送任意数量的消息。一旦开始,消息必须完整地传输(不能暂停并在稍后恢复)。任意数量的消息可以在信道上并行发送,而不会影响单个消息的传输时间。
攻击者有能力在一段连续的 $x$ 个时间步内禁用信道的安全协议,但只能使用一次(即,在执行此操作后,他们不能等待一段时间后再禁用另一个 $x$ 个时间步)。当安全协议被禁用时,攻击者可以进行监听,任何在这些 $x$ 个时间步内完整传输的消息都被视为已暴露。
无论攻击者何时选择禁用安全协议,Alice 发送所有 $n$ 条消息所需的最短时间是多少,才能保证最多只有两条消息被暴露?
图 E.1:左:样例输入 1 的解法示意图。右:将长度为 4 的消息提前一个时间步发送将不再是一个合法的解,因为长度为 6、4 和 3 的三条消息将会暴露给从时间步 5 到时间步 15 进行监听的窃听者。
输入格式
输入的第一行包含两个整数 $n$ 和 $x$ ($1 \le n \le 20\,000, 1 \le x \le 10\,000$),分别表示 Alice 想要发送的消息数量和窃听者可以监听的时间步数。 接下来一行包含 $n$ 个整数 $t_1, \dots, t_n$ ($1 \le t_i \le 10\,000$),表示每条消息传输所需的时间步数。
输出格式
输出完成所有 $n$ 条消息传输所需的最短时间步数,使得最多只有两条消息可能被暴露。
样例
样例输入 1
6 10 2 3 4 5 6 7
样例输出 1
16
样例输入 2
7 6 9 3 2 3 8 3 3
样例输出 2
11