#J2026M5. [CSP-J 2026 模拟二] 巡检补能(recharge)

[CSP-J 2026 模拟二] 巡检补能(recharge)

题目描述

一辆自动巡检车要按顺序经过 nn 段道路。它的电池最多存储 BB 单位能量,出发时电池充满。

通过第 ii 段道路需要恰好消耗 aia_i 单位能量,其中 1≤ai≤B1\le a_i\le B。

在进入每一段道路之前,如果当前能量不够,巡检车可以在道路起点充电一次,使能量直接恢复到 BB。每次充电只能充满,不能额外储存能量;没有必要时也允许充电,但你要让充电次数最少。

问在完成全部 nn 段道路后,最少充电次数,以及在充电次数最少的所有方案中能得到的最多剩余能量。出发时的满电不算充电;最后一段结束后不需要充电。

输入格式

第一行两个整数 n,Bn,B。

第二行 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。

输出格式

一行两个整数,依次表示最少充电次数和在这个最少次数下的最大剩余能量。

样例 1

6 10
4 6 2 8 1 9
2 0

样例解释

前两段消耗 4+6=104+6=10;在第三段前充电,第三、四段消耗 2+8=102+8=10;在第五段前再次充电,第五、六段消耗 1+9=101+9=10。所以充电两次,剩余能量为 00。

样例 2

3 10
3 3 6
1 4

本例只需充电一次。若在第三段开始前才充电,剩余 10−6=410-6=4;若提前到第二段开始前充电,最后只剩 11。所以第二个输出是最少充电次数下的最大剩余能量。

数据范围与部分分

保证 1≤n≤2×1051\le n\le 2\times10^5,1≤B≤1091\le B\le10^9,1≤ai≤B1\le a_i\le B。

子任务 分值 特殊限制 测试点
1 20 n≤10n\le10 1–4
2 n≤1000n\le1000 5–8
3 60 无额外限制 9–20

子任务独立计分;每档所有测试点均通过方得该档分数。请使用 64 位整数保存容量和能量。