详情
#include<bits/stdc++.h>
using namespace std;
int v[100010],a[100010],add[100010];
long long ans;
int main() {
add[0]=1;
int n,d,num=1,shen=0,now=1,zon=0;
cin>>n>>d;
a[num]=1;
for(int i=2; i<=n; i++) {
cin>>v[i];
zon+=v[i];
}
for(int i=1; i<=n; i++) {
cin>>a[i];
if(i!=1&&a[i]<a[1]) {
add[num]=i;
num++;
}
}
if(num==1) {
cout<<ceil(zon*1.0/d)*a[1];
} else {
for(int i=1; i<num; i++) {
int s=0;
for(int j=now+1; j<=add[i]; j++) {
s+=v[j];
}
now=add[i];
s-=shen;
shen=0;
int y=0;
if(s%d==0) {
y=s/d;
} else {
y=ceil(s*1.0/d);
shen=y*d-s;
}
ans+=y*a[add[i-1]];
}
cout<<ans;
}
return 0;
}