85求调玄关(开了long long)
查看原帖
85求调玄关(开了long long)
735089
ECNUAT_LZX楼主2024/7/22 14:33
#include <bits/stdc++.h>

#define int long long
using namespace std;
int n, d;
const int MAXN = 1e5 + 10;
int v[MAXN], a[MAXN], ans;

signed main() {
    cin >> n >> d;
    for (int i = 1; i <= n - 1; i++)
        cin >> v[i];
    for (int i = 1; i <= n; i++)
        cin >> a[i];
    int k = d - v[1] % d, mi = a[1];
    ans = a[1] * ceil(v[1] * 1.0 / d);
    for (int i = 2; i <= n - 1; i++) {
        //cout << k << ' ' << ans << ' ' << mi << endl;
        k -= v[i];
        mi = min(mi, a[i]);
        if (k < 0) {
            ans += mi * ceil((-k) * 1.0 / d);
            k += ceil((-k) * 1.0 / d ) * d;
        }
        //cout << k << ' ' << ans << ' ' << mi << endl << "-----------\n";
    }
    cout << ans;
    return 0;
}
2024/7/22 14:33
加载中...