Submission #692515

#TimeUsernameProblemLanguageResultExecution timeMemory
692515SnowmanonahoeJob Scheduling (CEOI12_jobs)C++17
15 / 100
160 ms17688 KiB
#include <bits/stdc++.h> using namespace std; struct day { vector<int> reqs; int due = 0; }; vector<day> days; int N; bool check(int num) { int jobs = 0, done = 0; for (int i = 1; i <= N; i++) { jobs = max(0, jobs + static_cast<int>(days[i].reqs.size()) - num); done += num - days[i].due; if (done < 0) return false; } return true; } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int D, M; cin >> N >> D >> M; days.resize(N+1); for (int i = 1; i <= M; i++) { int req; cin >> req; days[req].reqs.push_back(i); days[req + D].due++; } int l = 1, r = 1e+6; while (l < r) { int mid = l + (r - l) / 2; if (check(mid)) r = mid; else l = mid + 1; } cout << l << '\n'; queue<int> jobs; for (int i = 1; i <= N; i++) { for (const auto& i : days[i].reqs) jobs.push(i); for (int i = 0; i < l && !jobs.empty(); i++) { cout << jobs.front() << ' '; jobs.pop(); } cout << "0\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...