Submission #1157535

#TimeUsernameProblemLanguageResultExecution timeMemory
1157535ocasuJob Scheduling (CEOI12_jobs)C++20
40 / 100
1095 ms16504 KiB
#include <bits/stdc++.h> using namespace std; #define int long long signed main(){ int n,d,m; cin>>n>>d>>m; vector<vector<int>> x(n+1); for (int i=1; i<=m; i++) { int z; cin>>z; x[z].push_back(i); } int l = 1, r = 1e6+5; while (l != r) { int mid = (l+r)/2; //mid=1; bool ok=true; set<pair<int,int>> s; for (int i=1; i<=n; i++){ for (auto j: x[i]){ s.insert({i,j}); } for (int i=1; i<=mid and !s.empty(); i++){ s.erase(s.begin()); } if (!s.empty() and (i-(*s.begin()).first > d)){ ok=false; break; } } //cout<<(int)(s.size())<<'\n'; if (!s.empty()) ok=false; //cout<<ok<<'\n'; //break; if (ok) { r = mid; } else { l = mid+1; } } int ans=l; cout<<ans<<'\n'; set<pair<int,int>> s; for (int i=1; i<=n; i++){ for (auto j: x[i]){ s.insert({i,j}); } for (int i=1; i<=ans and !s.empty(); i++){ cout<<(*s.begin()).second<<' '; s.erase(s.begin()); } cout<<0<<'\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...