钓鱼
题号:NC50169
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

在一条水平路边,有n个钓鱼湖,从左到右编号为1,2,…,n。佳佳有H个小时的空余时间,他希望利用这个时间钓到更多的鱼。他从1出发,向右走,有选择的在一些湖边停留一定的时间(是5分钟的倍数)钓鱼。最后在某一个湖边结束钓鱼。佳佳从第i个湖到第i+1个湖需要走分钟路,还测出在第i个湖停留,第一个5分钟可以钓到F_i条鱼,以后每再钓5分钟,可以钓到的鱼量减少D_i,若减少后的鱼量小于0,则减少后的鱼量为0。为了简化问题,佳佳假定没有其他人钓鱼,也没有其他因素影响他钓到期望数量的鱼。请编程求出佳佳最多能钓鱼的数量。

输入描述:

第一行一个整数n,表示湖的个数

第二行一个整数H,表示佳佳的空闲时间

第三行有n个整数,依次表示每个湖第一个5分钟能钓到鱼的数量

第四行有n个整数,依次表示以后的每5分钟钓鱼数量比前一个5分钟钓鱼数量减少的数量

第五行有n-1个整数,T_i表示由第i个湖到第i+1个湖需要花分钟的路程

输出描述:

输出只有一行,表示佳佳最多能钓鱼的数量。
示例1

输入

复制
3
1
4 5 6
1 2 1
1 2

输出

复制
35

说明

在第1个湖钓15分钟,共钓得4+3+2=9条鱼;
在第2个湖钓10分钟,共钓得5+3=8条鱼;
在第3个湖钓20分钟,共钓得6+5+4+3=18条鱼;
从第1个湖到第2个湖,从第2个湖到第3个湖,共用时间15分钟,共得35条鱼,并且这是最多的数量。

备注:

对于的数据,