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的一部分时间其实已经没有鱼可钓了)。

来源/分类