名字不要取太长像我这样应该刚刚好 • 22天前
using namespace std; long long mi[100005], v[100005], a[100005];
int main() {
int n, d;
cin >> n >> d;
v[1] = 0;
for (int i = 2; i <= n; i++) {
int b;
cin >> b;
v[i] = v[i - 1] + b;
}
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
mi[1] = a[1];
for (int i = 2; i <= n; i++) {
mi[i] = min(mi[i - 1], a[i]);
}
long long now = 0, ans = 0;
for (int i = 2; i <= n; i++) {
if (now >= v[i])
continue;
int k = ceil((v[i] - now) * 1.0 / d * 1.0);
ans += mi[i - 1] * k;
now += k * d;
}
cout << ans;
return 0;
}
评论:
请先登录,才能进行评论