1159: 钓鱼去!
内存限制:128 MB
时间限制:2.000 S
评测方式:文本比较
命题人:
提交:12
解决:3
题目描述
在一条水平路边,有n(2<=n<=25)个钓鱼湖,从左到右编号为1、2、3、…、n。约翰有h(1<=h<=16)个小时的空余时间,他希望用这些时间钓到尽量多的鱼。他从湖1出发,向右走,有选择的在一些湖边停留一定的时间钓鱼,最后在某一个湖边结束钓鱼。约翰测出从第i个湖到第i+1个湖需要走5*ti(0<ti<=192)分钟的路,还测出在第i个湖边停留,第一个5分钟可以钓到鱼fi(fi>=0),以后再每钓5分钟鱼,钓到的鱼量减少di(di>=0)。为了简化问题,假定除了约翰以外没有其他人在钓鱼,也不会有其他因素影响他钓到期望数量的鱼。如果约翰不想在某个湖钓鱼,则不会在那里做任何停留。
请编写程序求出约翰能钓到最多鱼的方案。
输入
输入中包括多个测试用例。每一组数据第一行是n,第二行是h,第三行为n个整数表示fi(1<=i<=n),第四行是n个整数表示di(1<=i<=n),最后一行是n-1个整数表示ti(1<=i<=n-1)。
输入以n=0结束。
输出
对于每一个测试用例,输出的第一行是能达到的最大钓鱼量的计划中在每个湖停留的时间(用逗号隔开,全部在一行内输出,哪怕超过80个字符)。
第二行是预期达到的最大钓鱼量。如果有多个这样的计划,挑选在湖1停留时间尽可能长的那一个,哪怕在一些时间间隔里没有钓到鱼。如果还是相同,则挑选在湖2停留时间尽可能长的那一个,以此类推。每个用例的输出之间有一个空行。
[translated by B2L]
样例输入 复制
2
1
10 1
2 5
2
4
4
10 15 20 17
0 3 4 3
1 2 3
4
4
10 15 50 30
0 3 4 3
1 2 3
0
样例输出 复制
45, 5
Number of fish expected: 31
240, 0, 0, 0
Number of fish expected: 480
115, 10, 50, 35
Number of fish expected: 724
提示
约翰所有的时间要么用在湖边钓鱼(哪怕湖里已经没有鱼了),要么用在到某个湖的路上。
范例1中约翰在湖1钓45分钟,在湖2钓5分钟,在去湖2的路上走了10分钟,一共钓到31的鱼(在湖1的一部分时间其实已经没有鱼可钓了)。