#include<bits/stdc++.h>
using namespace std;
#define int long long
int n;
double d,oil,ans;
double a[100005],s[100005],c[100005];
signed main(){
cin >> n >> d;
s[1] = 0;
for(int i = 1;i <= n - 1;i++){
int t;
cin >> t;
s[i] = t + s[i - 1];
}
int minn = INT_MAX;
int p = 0;
for(int i = 1;i <= n;i++){
cin >> a[i];
if(a[i] < minn && i != n){
minn = a[i];
c[++p] = i;
}
}
c[p + 1] = n;
for(int i = 2;i <= p + 1;i++){
int now,next;
now = c[i - 1];
next = c[i];
int sum = s[next - 1] - s[now - 1];
if(oil * d < sum){
ans = ans + ceil((sum - oil * d) / d) * a[now];
oil += ceil((sum - oil * d) / d);
}
oil -= sum * 1.0 / d;
}
cout << ans << endl;
return 0;
}