Submission #1288833

#TimeUsernameProblemLanguageResultExecution timeMemory
1288833tormentJob Scheduling (CEOI12_jobs)C++20
0 / 100
247 ms23436 KiB
#include<bits/stdc++.h>
using namespace std;

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int n, d, m;
    cin >> n >> d >> m;
    vector<array<int, 2>>v(m);
    for(int i = 0;i < m;++i){
        cin >> v[i][0];
        v[i][1] = i + 1;
    }
    sort(v.begin(), v.end());
    int l = 1, r = m, ans = m;
    while(l <= r){
        int mid = (l + r) / 2;
        bool f = true;
        int p = 0, day = 1;
        while(f && p < m){
            int cur = p;
            for(;p < min(m, cur + mid);++p){
                if(v[p][0] > day)break;
                if(v[p][0] + d < day)f = false;
            }
            day++;
        }
        if(f){
            ans = mid;
            r = mid - 1;
        }
        else{
            l = mid + 1;
        }
    }
    cout << ans << '\n';
    int p = 0, day = 1;
    vector<vector<int>>res(n + 1);
    while(p < m){
        int cur = p;
        for(;p < min(m, cur + ans);++p){
            if(v[p][0] > day)break;
            res[day].push_back(v[p][1]);
        }
        day++;
    }
    for(int i = 1;i <= n;++i){
        res[i].push_back(0);
        for(int j : res[i]){
            cout << j << ' ';
        }
        cout << endl;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...