include[HTML_REMOVED]
include[HTML_REMOVED]
define N 100010
typedef long long ll;
int min(int a,int b){
if(a>=b)return b;
else return a;
}
int main(){
int n,d;//站点数与每升油跑的距离
int v[N],a[N];//距离与由价钱
scanf(“%d%d”,&n,&d);
for(int i=1;i<n;i)scanf(“%d”,&v[i]);//从一到n之间一共有n-1个站点
for(int i=1;i<=n;i)scanf(“%d”,&a[i]);
int p=a[1];//初始油价
ll dist=0,oil=0;//总距离,剩余汽油
ll all=0;//总花费
for(int i=2;i<=n;i++){
ll o;//目前需要补充的汽油
dist=dist+v[i-1];//更新总距离
o=ceil((double)dist/d)-oil;//对ceil函数应该先转化为浮点型
oil=oil+o;//更新剩余油量
all=all+p*o;//更新总价钱
p=min(p,a[i]);//更新最便宜的站点汽油价钱
}
printf("%lld",all);
return 0;
}