85分WA求助
查看原帖
85分WA求助
302356
PLDIS楼主2022/4/12 16:22

RT,代码如下:

#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
    int n, m, q, u, v, t;
    cin >> n >> m >> q >> u >> v >> t;
    queue<int> q1, q2, q3;
    int a[n];
    for(int i = 0;i < n;i++){
        cin >> a[i];
    }
    sort(a, a + n);
    for(int i = n - 1;i >= 0;i--){
        q1.push(a[i]);
    }
    int delta = 0;
    for(int i = 1;i <= m;i++){
        int a1 = (q1.empty() ? 0 : q1.front());
        int a2 = (q2.empty() ? 0 : q2.front());
        int a3 = (q3.empty() ? 0 : q3.front());
        int k = max(a1, max(a2, a3));
        if(q1.size() && k == q1.front()) q1.pop();
        else if(q2.size() && k == q2.front()) q2.pop();
        else q3.pop();
        if(i % t == 0){
            cout << k + delta << " ";
        }
        k += delta;
        double t1 = (double)u / (double)v;
        int p = k * t1;
        q2.push(p - delta - q), q3.push(k - p - delta - q);
        delta += q;
    }
    vector<int> vec;
    while(!q1.empty()){
        vec.push_back(q1.front());
        q1.pop();
    }
    while(!q2.empty()){
        vec.push_back(q2.front());
        q2.pop();
    }
    while(!q3.empty()){
        vec.push_back(q3.front());
        q3.pop();
    }
    cout << endl;
    sort(vec.begin(), vec.end(), greater<int>());
    for(int i = t - 1;i < vec.size();i += t){
        cout << vec[i] + delta << " ";
    }
    return 0;
}
2022/4/12 16:22
加载中...