Submission #1233258

#TimeUsernameProblemLanguageResultExecution timeMemory
1233258dreamxhavaBrought Down the Grading Server? (CEOI23_balance)C++20
0 / 100
217 ms73880 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int N, S, T;
    cin >> N >> S >> T;

    vector<vector<int>> cores(N, vector<int>(S));
    vector<queue<int>> buckets(S);  

    for (int i = 0; i < N; ++i)
        for (int j = 0; j < S; ++j)
            cin >> cores[i][j];

    vector<multiset<int>> core_tasks(N);
    for (int i = 0; i < N; ++i)
        for (int j = 0; j < S; ++j)
            core_tasks[i].insert(cores[i][j]);

    map<int, queue<pair<int,int>>> task_positions;

    for (int i = 0; i < N; ++i)
        for (int j = 0; j < S; ++j)
            task_positions[cores[i][j]].emplace(i, j);

    vector<int> flat;
    for (int i = 0; i < N; ++i)
        for (int j = 0; j < S; ++j)
            flat.push_back(cores[i][j]);

    sort(flat.begin(), flat.end());

    vector<vector<int>> schedule(N, vector<int>(S));
    int ptr = 0;

    for (int m = 0; m < S; ++m) {
        vector<tuple<int, int, int>> minute_slots;
        for (int c = 0; c < N; ++c) {
            int task = -1;
            for (auto it = core_tasks[c].begin(); it != core_tasks[c].end(); ++it) {
                task = *it;
                core_tasks[c].erase(it);
                break;
            }
            minute_slots.emplace_back(task, c, m);
        }
        sort(minute_slots.begin(), minute_slots.end());
        for (auto &[task, c, m] : minute_slots)
            schedule[c][m] = task;
    }

    for (int i = 0; i < N; ++i) {
        for (int j = 0; j < S; ++j)
            cout << schedule[i][j] << " \n"[j == S - 1];
    }

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...