1 条题解

  • 0
    @ 2025-7-12 10:47:42

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    const int MAXN = 1e6 + 10;
    int n, A, B, T;
    int a[MAXN];
    
    long long water(int &w, int W, int x) {
        long long cnt = ceil (1.0 * (x - w) / W);
        w += cnt * W - x;
        return x + cnt * T;
    }
    
    int main() {
        cin >> n >> A >> B >> T;
        for(int i = 1; i <= n; ++i) cin >> a[i];
        int l = 1, r = n, wl = A, wr = B;
        long long tl = 0, tr = 0;
        while(l <= r) {
            if(tl <= tr) tl += water(wl, A, a[l++]);
            else tr += water(wr, B, a[r--]);
        }
        cout << max(tl, tr);
        return 0;
    }
    
    
    • 1

    信息

    ID
    4
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者