社区讨论

CSP-J T2 40分求助

灌水区参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lo137z1g
此快照首次捕获于
2023/10/22 14:28
2 年前
此快照最后确认于
2023/11/02 11:54
2 年前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;

int v[100005], a[100005], n, d, pre[100005];

int main() {
    //freopen("road.in", "r", stdin);
    //freopen("road.out", "w", stdout);
    cin >> n >> d;
    for (int i = 1; i < n; i++) {
        cin >> v[i];
        pre[i+1] = pre[i] + v[i];
    }
    for (int i = 1; i <= n; i++) cin >> a[i];
    int tot = ceil((double)pre[n] / d);
    int km = 0, cnt = 0;
    for (int i = 1; i < n; i++) {
        if (km < v[i]) {
            int pos;
            for (pos = i+1; pos < n; pos++)
                if (a[pos] < a[i])
                    break;
            int dis = pre[pos] - pre[i];
            int o = ceil(double(dis - km) / d);
            cnt += a[i]*o;
            km += d*o;
        }
        km -= v[i];
    }
    cout << cnt << endl;
    return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...