RT
#include<cstdio>
#include<cmath>
using namespace std;
long long dis[100010],cost[100010],n,d,f[100010];
double gas[100010];
int main()
{
scanf("%lld%lld",&n,&d);
for(int i=2;i<=n;i++) scanf("%lld",&dis[i]),dis[i]+=dis[i-1];
for(int i=1;i<=n;i++) scanf("%lld",&cost[i]);
long long lastmin=1;
for(int i=2;i<=n;i++)
{
f[i]=f[lastmin]+ceil(((dis[i]-dis[lastmin])/(double)d)-gas[lastmin])*cost[lastmin];
gas[i]=gas[lastmin]+ceil(((dis[i]-dis[lastmin])/(double)d)-gas[lastmin])-(dis[i]-dis[lastmin])/(double)d;
if(cost[i]<cost[lastmin])
lastmin=i;
}
printf("%lld\n",f[n]);
}