Submission #989538

#TimeUsernameProblemLanguageResultExecution timeMemory
989538greenbinjackJob Scheduling (CEOI12_jobs)C++17
100 / 100
231 ms27544 KiB
#include <bits/stdc++.h> using namespace std; using LL = long long; int main() { cin.tie(nullptr)->ios_base::sync_with_stdio(false); int days, delay, req; cin >> days >> delay >> req; vector < pair <int, int> > v(req); for (int i = 0; i < req; i++) { int day; cin >> day; v[i] = {day, i + 1}; } sort(v.begin(), v.end()); vector < vector <int> > ans; int left = 1, right = req; while (left < right) { int mid = (left + right) >> 1; int cur_req = 0; vector < vector <int> > adj(days); bool ok = false; for (int i = 1; i <= days; i++) { for (int j = 0; j < mid; j++) { if (i < v[cur_req].first) break; if (i <= v[cur_req].first + delay) adj[i - 1].push_back(v[cur_req++].second); else break; if (cur_req == req) ok = true; } } if (ok) { right = mid; ans = adj; } else { left = mid + 1; } } cout << right << '\n'; for (int i = 0; i < days; i++) { for (auto c : ans[i]) cout << c << ' '; cout << 0 << '\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...