#6913. B.松饼(Waffle)
B.松饼(Waffle)
松饼(Waffle)
题目描述
葛瑞斯新开了一家松饼店,店里有两台松饼机。目前提供原味和可可两种口味,不同口味所需的烘烤时间不同。
店铺按照订单到达的先后顺序安排制作,不能更改订单顺序。每台松饼机同一时间只能烘烤一份松饼;放入和取出松饼的时间可以忽略。每笔订单固定订购一份松饼。
例如,三笔订单依次为原味、可可、原味。若原味需要 (10) 单位时间,可可需要 (15) 单位时间,两台松饼机可以这样工作:
| 松饼机 | 制作安排 |
|---|---|
| 1 号 | 订单 1:原味,时间 (0\sim10);订单 3:原味,时间 (10\sim20) |
| 2 号 | 订单 2:可可,时间 (0\sim15) |

因此,全部订单在时间点 (20) 完成。
请计算完成所有订单所需的总时间。
输入格式
第一行包含两个正整数 (T_1,T_2)((1\le T_1,T_2\le20)),分别表示两种口味的烘烤时间。
第二行包含一个正整数 (M)((1\le M\le50)),表示订单数量。
接下来 (M) 行,每行包含一个整数 (F_j)((F_j\in{1,2})),表示第 (j) 笔订单订购的口味。
输出格式
输出一个整数,表示所有订单完成所需的总时间。
样例 1
输入
10 15
3
1
2
1
输出
20
说明
时间点 (0),两台松饼机分别开始制作前两笔订单。时间点 (10),1 号松饼机完成订单 1,随即开始制作订单 3。时间点 (15),订单 2 完成;时间点 (20),订单 3 完成。因此总时间为 (20)。
评分说明
每组包含多笔测试数据,只有答对该组的全部数据才能获得对应分数。
| 测试组 | 分值 | 限制 |
|---|---|---|
| 第一组 | 20 分 | 所有订单的口味相同 |
| 第二组 | 80 分 | 无特殊限制 |
| 测试点编号 | 层级 | m |
加工时间 f |
特殊性质 | 覆盖点 | 标准输出 |
|---|---|---|---|---|---|---|
| 1 | 弱数据 | 1 | 3, 5 |
单个订单 | 最小订单规模、首次分配给烤箱 1 | 3 |
| 2 | 4 | 4, 7 |
全为类型 1 | 两烤箱用时相等时优先选择烤箱 1 | 8 | |
| 3 | 正常数据 | 7 | 2, 9 |
长短订单混合 | 多次切换目标烤箱、末尾平局分配 | 22 |
| 4 | 12 | 6, 13 |
连续长订单与短订单交错 | 检验按当前累计用时贪心分配,而非简单轮流 | 56 | |
| 5 | 极限数据 | 50 | 1000000, 999983 |
达到数组容量上界 | 最大订单数、大数累加、长序列调度 | 24999813 |