Submission #97640

#TimeUsernameProblemLanguageResultExecution timeMemory
97640dalgerokJob Scheduling (CEOI12_jobs)C++17
55 / 100
71 ms8056 KiB
#include<bits/stdc++.h> using namespace std; const int N = 1e5 + 5; int n, d, m, a[N], ans[N]; vector < int > q[N], s[N]; inline bool check(int x){ queue < int > e; for(int i = 1; i <= n; i++){ for(auto it : q[i]){ e.push(it); } for(int j = 1; j <= x && !e.empty(); j++){ if(a[e.front()] + d < i){ return false; } ans[e.front()] = i; e.pop(); } } return e.empty(); } int main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin >> n >> d >> m; for(int i = 1; i <= m; i++){ cin >> a[i]; q[a[i]].push_back(i); } int l = 1, r = m; while(l < r){ int mid = (r + l) >> 1; if(check(mid)){ r = mid; } else{ l = mid + 1; } } check(l); for(int i = 1; i <= m; i++){ s[ans[i]].push_back(i); } cout << l << "\n"; for(int i = 1; i <= n; i++){ for(auto it : s[i]){ cout << it << " "; } cout << "0\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...