Submission #970943

#TimeUsernameProblemLanguageResultExecution timeMemory
970943jadai007Job Scheduling (CEOI12_jobs)C++14
100 / 100
162 ms17180 KiB
#include<bits/stdc++.h> using namespace std; int n, d, m, day[1000100]; vector<int> times[100100]; int main(){ cin.tie(nullptr)->sync_with_stdio(false); cin >> n >> d >> m; for(int i = 1; i <= m; ++i){ cin >> day[i]; times[day[i]].push_back(i); } int l = 1, r = 1e9; while(l < r){ int mid = (l + r) >> 1, check = true; queue<int> q; for(int i = 1; i<=n; ++i){ int k = mid; for(auto x:times[i]) q.push(x); while(k-- && !q.empty()) q.pop(); if(!q.empty() && day[q.front()] + d == i){ check = false; break; } } if(check) r = mid; else l = mid+1; } cout << l << '\n'; queue<int> q; for(int i = 1; i<=n; ++i){ int k = l; for(auto x:times[i]) q.push(x); while(k-- && !q.empty()){ cout << q.front() << ' '; q.pop(); } cout << "0\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...