Submission #1222879

#TimeUsernameProblemLanguageResultExecution timeMemory
1222879toast12Job Scheduling (CEOI12_jobs)C++20
55 / 100
257 ms13856 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n, d, m;
    cin >> n >> d >> m;
    vector<pair<int, int>> a(m);
    for (int i = 0; i < m; i++) {
        cin >> a[i].first;
        a[i].second = i;
    }
    sort(a.begin(), a.end());
    int lo = 1, hi = m;
    while (lo < hi) {
        int mid = (lo+hi)/2;
        int idx = 0;
        int day = 1;
        bool poss = true;
        while (idx < m) {
            if (day > n) {
                poss = false;
                break;
            }
            for (int i = 0; i < mid && idx < m; i++) {
                if (a[idx].first+d >= day) idx++;
                else {
                    poss = false;
                    break;
                }
            }
            day++;
        }
        if (!poss) lo = mid+1;
        else hi = mid;
    }
    cout << hi << '\n';
    int z = 0;
    for (int i = 0; i < m; i += hi) {
        for (int j = i; j < min(m, i+hi); j++) cout << a[j].second+1 << ' ';
        cout << "0\n";
        z++;
    }
    for (int i = z; i < n; i++) cout << "0\n";
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...