#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