#include<bits/stdc++.h>
#define N 100005
#define mod 100000007
#define f(i,a,b) for(long long i=a;i<=b;i++)
#define _f(i,a,b) for(long long i=a;i>=b;i--)
#define el printf("\n")
#define spc printf(" ")
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef double D;
inline int ri(){char ch=getchar(); int x=0,f=1;while((ch>'9'||ch<'0')&&ch!='-')ch=getchar();if(ch=='-'){f=-1;ch=getchar();}while('0'<=ch&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}inline void wi(int x){if(x<0)putchar('-'),x=-x;if(x>9)wi(x/10);putchar(x%10+'0');return;}
//inline ll rl(){char ch=getchar(); ll x=0,f=1;while((ch>'9'||ch<'0')&&ch!='-')ch=getchar();if(ch=='-'){f=-1;ch=getchar();}while('0'<=ch&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}inline void wl(ll x){if(x<0)putchar('-'),x=-x;if(x>9)wl(x/10);putchar(x%10+'0');return;}
//inline __int128 ri128(){char ch=getchar();__int128 x=0,f=1;while((ch>'9'||ch<'0')&&ch!='-')ch=getchar();if(ch=='-'){f=-1;ch=getchar();}while('0'<=ch&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}inline void wi128(__int128 x){if(x<0)putchar('-'),x=-x;if(x>9)wi128(x/10);putchar(x%10+'0');return;}
ll n,d,a[N],v[N],minn[N],sum=0;
int main(){
cin>>n>>d;
f(i,2,n)
{
v[i]=ri();
v[i]+=v[i-1];
}
f(i,1,n)a[i]=ri();
minn[1]=a[1];
f(i,2,n)minn[i]=min(a[i],minn[i-1]);
ll now=0;
f(i,2,n)
{
if(now>v[i])continue;
int k=ceil((v[i]-now)*1.0/d*1.0);
sum+=k*minn[i-1];
now+=k*d;
}
cout<<sum;
return 0;
}
ac 1-10
wa 11-20
无tle,mle,re