rt
#include <cstdio>
int n, d, v[100005] = {}, a[100005], nxt[100005], dist = 0, i, last = 0;
unsigned long long sum = 0;
int main()
{
scanf("%d %d", &n, &d);
for (i = 1; i < n; ++i)
scanf("%d", v + i), v[i] += v[i - 1];
for (i = 0; i < n; ++i)
{
scanf("%d", a + i);
if (a[i] < a[last])
nxt[last] = i, last = i;
}
nxt[last] = n - 1;
nxt[n - 1] = -1;
for (i = 0; nxt[i] != -1; i = nxt[i])
sum += (v[nxt[i]] - v[i] + d - 1 - dist) / d * a[i],
dist = (v[nxt[i]] - v[i] + d - 1 - dist) / d * d - v[nxt[i]] + v[i] + dist;
printf("%llu", sum);
return 0;
}
CSP-J2 T2 求调