#include<bits/stdc++.h>
using namespace std;
long long n,d,v[100005];
struct sta{
long long a,num;
}station[100005];
long long nim=1145141919810,nimm;
long long sroad(long long l,long long r){
long long zxc_ak_csp=0;
for(int i=l;i<=r-1;i++){
zxc_ak_csp+=v[i];
}
return zxc_ak_csp;
}
int main(){
//freopen("road.in","r",stdin);
//freopen("road.out","w",stdout);
cin>>n>>d;
for(int i=1;i<=n-1;i++){
cin>>v[i];
}
for(int i=1;i<=n;i++){
cin>>station[i].a;
station[i].num=i;
if(station[i].a<nim){
nim=station[i].a;
nimm=i;
}
}
if(nimm==1){
long long road=0;
for(int i=1;i<=n-1;i++){
road+=v[i];
}
cout<<ceil(road*1.0/d)*station[1].a<<endl;
return 0;
}
long long now=1,all=0,cnt=1;
double oil=0;
while(now<=n){
if(now+cnt<=n&&station[now].a>station[now+cnt].a){
if(now+cnt==n){
all+=ceil(sroad(now,now+cnt)*1.0/d-oil)*station[now].a;
cnt=0;
break;
}
all+=ceil(sroad(now,now+cnt)*1.0/d)*station[now].a;
oil+=ceil(sroad(now,now+cnt)*1.0/d)-sroad(now,now+cnt)*1.0/d;
now+=cnt;
cnt=0;
}
cnt++;
}
cout<<all<<endl;
//fclose(stdin);
//fclose(stdout);
return 0;
}
J组T2贪心思路是对的,但是只拿了20(锣鼓数据),但是特殊性质有30.急急急。