#P7747. [COCI2011-2012#3] TRAKA

[COCI2011-2012#3] TRAKA

题目描述

Mirko 的工厂里面有 nn 个工人。他们以流水线方式在传送带上制造汽车。工人从左往右编号为 1n1\sim n,其中工人 11 即为 Mirko。汽车生产从工人 11(Mirko)开始,在他完成所有他的工作后,工人 22 接手他的任务。之后工人 33 再接手工人 22 的任务,以此类推。当工人 nn 完成他的工作后,一辆汽车就生产完成了。

Mirko 和他的工人们必须生产 mm 辆汽车,且必须按 1m1\sim m 的顺序生产。对于第 ii 个工人,他完成他的工作的时间为 tit_i。对于第 jj 辆汽车,它装配的复杂度为 fjf_j。工人 ii 在汽车 jj 上完成他的工作所需时间为 tifjt_i\cdot f_j

根据公司政策,一个工人完成他的工作后,他必须立即将工作交给下一个工人,不得拖延。因此,下一个工人此时不能够在其他汽车上工作。为了满足这个条件,Mirko 必须等到一个好的时机开始制造一辆新车。为了提高效率,他将等待最少的时间,直到他确定能够满足所有条件。

编写一个程序,给定每个工人完成他的工作的时间和每辆车装配的复杂度,求生产所有汽车所需的总时间。

输入格式

输入共 n+m+2n+m+2 行。

第一行,两个整数 n,mn,m,分别代表工人的个数和需要生产的汽车的辆数。
随后 nn 行,每行一个整数 tit_i,表示第 ii 个工人完成他的工作的时间。
随后 mm 行,每行一个整数 fjf_j,表示第 jj 辆车装配的复杂度。

输出格式

输出仅一行一个整数,表示生产所有汽车所需的总时间。

3 3
2
1
1
2
1
1
11
3 3
2
3
3
2
1
2
29
4 5
3
2
2
2
3
1
2
1
2
55

提示

【样例 1 解释】

对于样例 1144 个单位的时间后,工人 11 完成了第一辆车的工作。他可能会立即开始在第二辆车上工作,但这违反了汽车必须在完成后立即传递给下一个工人的条件(77 个单位的时间后第二个工人将完成他在第二辆车上的工作,但是第三个工人不能接手,因为他仍然在第一辆车上工作)。因此,第二辆车在 55 个单位的时间后才能开始生产。77 个单位的时间后开始生产第三辆汽车。第一辆车在 88 个单位的时间后完成,第二辆车在 99 个单位的时间后完成,第三辆车在 1111 个单位的时间后完成。因此总时间是 1111

【数据范围】

对于 40%40\% 的数据,满足 n,m1000n,m\leqslant 1000
对于所有数据,1n,m1051\leqslant n,m\leqslant 10^51ti,fj1041\leqslant t_i,f_j\leqslant 10^4

【题目来源】

本题来源自 COCI 2011-2012 CONTEST 3 T6 TRAKA,按照原题数据配置,满分 160160 分。

Eason_AC 翻译整理提供。