来自于一年前的我,现在根本看不懂/ll
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n, d, a[110001], v[110001], oil, ans = 0, j, sum, tmp, add;
int main(){
cin >> n >> d;
for (int i = 2;i <= n;i++){
cin >> a[i];
}
for (int i = 1;i <= n;i++) cin >> v[i];
for (int i = 1;i < n;i = j){
sum = 0;
for (j = i + 1;j <= n;j++){
sum += a[j];
if (v[j] < v[i]){
break;
}
}
sum -= min(sum, oil);
oil -= min(sum, oil);
add = (sum / d + (sum % d > 0 ? 1 : 0));
ans += add * v[i];
oil += max(0LL, add * d - sum);
}
cout << ans << '\n';
}