求调
#include "bits/stdc++.h"
#define ll long long
using namespace std;
const int maxn = (int)1e5 + 10;
int n,d,v[maxn],a[maxn];
ll cnt[maxn];
void input()
{
scanf ("%d%d",&n,&d);
for (int i = 1;i < n;i++)
scanf ("%d",&v[i]),cnt[i+1] = cnt[i] + a[i];
for (int i = 1;i <= n;i++)
scanf ("%d",&a[i]);
}
ll dfs(int l,int r)
{
if (l == r)
return 0;
int k = 0,mn = INT_MAX;
for (int i = l;i <= r;i++)
if (a[i] < mn)
mn = a[i],k = i;
return dfs(l,k-1) + 1ll * (cnt[r] - cnt[k-1] + d - 1) / d * a[k];
}
int main()
{
input();
printf ("%lld",dfs(1,n-1));
return 0;
}