代码如下
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5 + 10;
int v[N], a[N];
int n, d;
signed main()
{
cin >> n >> d;
for(int i = 2; i <= n; i++) cin >> v[i];
for(int i = 1; i <= n; i++) cin >> a[i];
int op = 0, ans = 0;
for(int i = 1; i < n;)
{
int j = i + 1, k = 0;
for(; j <= n; j++)
{
k += v[j];
if(a[j] < a[i])
{
break;
}
}
if(op <= k) k -= op, op = 0;
else
{
op -= k;
i = j;
continue;
}
op += k - k / d * d;
ans += (int)(k / d) * a[i];
if(k % d) ans += a[i];
i = j;
}
cout << ans;
}