CF1765D Watch the Videos

题目描述

Monocarp 想要观看 $n$ 个视频。每个视频仅有一分钟长,但其大小可以任意。第 $i$ 个视频的大小为 $a_i$ 兆字节。所有视频都发布在互联网上。每个视频需要先下载后才能观看。Monocarp 的网络很差——下载 $1$ 兆字节需要恰好 $1$ 分钟,因此下载第 $i$ 个视频需要 $a_i$ 分钟。 Monocarp 的电脑硬盘容量为 $m$ 兆字节。硬盘用于存储已下载的视频。当 Monocarp 开始下载一个大小为 $s$ 的视频时,硬盘上会立即预留 $s$ 兆字节的空间。如果剩余空间不足 $s$ 兆字节,则无法开始下载,直到释放出足够的空间。每个视频都可以单独存储在硬盘上,因为对于所有 $i$ 都有 $a_i \le m$。一旦开始下载,下载过程不能中断,也不允许同时并行下载两个或更多视频。 一旦一个视频完全下载到硬盘上,Monocarp 就可以观看它。观看每个视频恰好需要 $1$ 分钟,并且不会占用网络连接,因此 Monocarp 可以在观看当前视频的同时开始下载下一个视频。 当 Monocarp 看完一个视频后,他就不再需要将其保存在硬盘上,因此可以立即删除该视频,释放出其占用的空间。删除视频所需时间可以忽略不计。 Monocarp 想要尽快看完所有 $n$ 个视频。观看的顺序无关紧要,因为他无论如何都需要全部观看。请计算完成这一目标所需的最短时间。

输入格式

第一行包含两个整数 $n$ 和 $m$($1 \le n \le 2 \cdot 10^5$,$1 \le m \le 10^9$),分别表示 Monocarp 想要观看的视频数量和硬盘容量。 第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le m$),表示每个视频的大小。

输出格式

输出一个整数,表示看完所有 $n$ 个视频所需的最短时间。

说明/提示

由 ChatGPT 4.1 翻译