Submission #535353

#TimeUsernameProblemLanguageResultExecution timeMemory
535353PyrodoxJob Scheduling (CEOI12_jobs)C++17
0 / 100
785 ms65536 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

bool cmp(const vector<ll>& a, const vector<ll>& b)
{
    return a[0] < b[0];
}

int main()
{
    ll n, d, m;
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cin >> n >> d >> m;
    vector<vector<ll>> jobs(m);
    for (ll i = 1; i <= m; ++i) {
        ll a;
        cin >> a;
        jobs[i - 1] = {a, i};
    }
    sort(jobs.begin(), jobs.end(), cmp);
    vector<vector<ll>> ans;
    ll l = 1, r = m;
    while (l < r) {
        ll mid = l + (r - l) / 2, start = 0;
        //cout << "testing mid: " << mid << "\n";
        //bool check = true;
        vector<vector<ll>> jobstmp(n);
        for (ll i = 0; i < n; ++i) {
            //cout << "a\n";
            for (ll j = 0; j < mid && start <= m - 1; ++j) {
                //cout << "bat\n";
                if (jobs[start][0] <= i + 1) {
                    jobstmp[i].push_back(jobs[start][1]);
                    ++start;
                    //cout << "at\n";
                }
                else {
                    break;
                }
            }
            //cout << "heree\n";
            jobstmp[i].push_back(0);
            //cout << "h\n";
        }
        /*for (auto val : jobstmp) {
            for (ll i : val) {
                cout << i << " ";
            }
            cout << "\n";
        }*/
        //cout << "start: " << start << " check: " << "\n";
        if (start == m) {
            //cout << "r from " << r << " to r -> " << mid << "\n";
            r = mid;
            ans = jobstmp;
        }
        else {
            //cout << "l from " << l << " to l -> " << mid << " + 1\n";
            l = mid + 1;
        }
    }
    cout << l << "\n";
    for (auto i : ans) {
        for (ll j : i) {
            cout << j << " ";
        }
        cout << "\n";
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...