#3445. 机器人的能量(energy)
机器人的能量(energy)
题目描述
小 Q 设计了一个探险机器人,它需要在一条笔直的道路上从起点 走到终点 。机器人配备了两组能源:一组普通电池和一组可充电的太阳能蓄电池。
道路被分为 段,第 段(从 到 )可能暴露在阳光下,也可能处于阴影中。用一个长度为 的数组 来描述: 表示第 段有阳光, 表示没有阳光。
机器人初始拥有 单位电池电量和 单位蓄电池电量,电池的最大容量为 ,蓄电池的最大容量为 。每通过一段路,机器人必须选择消耗 单位电池电量或 单位蓄电池电量(只有当该能源仍有剩余电量时才能选择)。
特别地,如果当前路段有阳光(),并且机器人选择消耗电池电量通过,那么蓄电池会获得 单位充电(但不能超过其最大容量 )。消耗蓄电池电量通过任何路段都不会触发充电。
你的任务是:在最优的操作策略下,机器人最多能通过多少段路?
输入格式
从 energy.in 文件读入数据。
第一行包含三个整数 ,分别表示路段总数、电池初始电量和蓄电池初始电量。
第二行包含 个整数 ,,依次表示每段路是否有阳光。
输出格式
输出到 energy.out 文件。
输出一个整数,表示机器人最多能通过的段数。
样例
样例 1
3 2 2
1 0 1
3
样例 1 解释
第 1 段有阳光,使用电池(剩余 ,,蓄电池已满无法充电)。第 2 段无阳光,使用蓄电池(剩余 ,)。第 3 段有阳光,使用电池,蓄电池充电(剩余 ,)。机器人成功通过全部 3 段。
样例 2
4 1 1
0 1 0 1
3
样例 2 解释
第 1 段无阳光,使用蓄电池(剩余 ,)。第 2 段有阳光,使用电池,蓄电池充电(剩余 ,)。第 3 段无阳光,使用蓄电池(剩余 ,)。此时两种电量均为 ,无法通过第 4 段。最多通过 3 段。
样例 3
点击链接 ex_energy3.in 和 ex_energy3.ans 下载大样例 3 的输入数据和输出数据。
数据范围
对于所有测试数据,保证 ,。
| 子任务 | 测试点 | 分数 | 附加约束条件 |
|---|---|---|---|
| , | |||
| 所有 , | |||
| 所有 , | |||
| 无额外限制 |
每个测试点独立计分,单个测试点 分,总分 分。
提示
各组能源的电量在任何时刻均为非负整数,且不超过初始容量。