蒟蒻求大佬之调,源码在此
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+5;
int n, d;
int v[N], a[N];
int main(){
cin >> n >> d;
for(int i = 1; i < n; ++i){
cin >> v[i];
}
for(int i = 1; i <= n; ++i){
cin >> a[i];
}
long long ans = 0;
int befStop = 1;
long long V = 0;
long long remaining = 0;
for(int i = 1; i <= n; ++i){
if(a[i] < a[befStop]){
ans += a[befStop] * ceil((V * 1.0 - remaining) / d);
remaining += ceil(V * 1.0 / d) * d - V;
befStop = i;
V = 0;
}
V += v[i];
}
ans += a[befStop] * ceil(V * 1.0 / d);
cout << ans;
return 0;
}