Submission #1245178

#TimeUsernameProblemLanguageResultExecution timeMemory
1245178caterpillowJob Scheduling (CEOI12_jobs)C++20
0 / 100
246 ms13832 KiB
#include <bits/stdc++.h> using namespace std; int main() { cin.tie(0)->sync_with_stdio(0); int n, d, m; cin >> n >> d >> m; vector<int> reqs(m), ord(m); for (int &x : reqs) cin >> x, x--; for (int i = 0; i < m; i++) ord[i] = i; sort(ord.begin(), ord.end(), [&] (int i, int j) { return reqs[i] < reqs[j]; }); int lo = 0, hi = m; vector<vector<int>> ans; while (hi - lo > 1) { int mid = (lo + hi) / 2; queue<int> todo; bool good = true; int j = 0; vector<vector<int>> tmp(n); for (int i = 0; i < n; i++) { while (j < m && reqs[ord[j]] == i) todo.push(ord[j++]); for (int k = 0; k < mid && todo.size(); k++) { if (i - todo.front() > d) good = false; tmp[i].push_back(todo.front()); todo.pop(); } } if (todo.size() || good == false) lo = mid; else { ans = tmp; hi = mid; } } cout << hi << '\n'; for (int i = 0; i < n; i++) { for (int x : ans[i]) cout << x + 1 << ' '; cout << "0\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...