Submission #447238

#TimeUsernameProblemLanguageResultExecution timeMemory
447238erkeJob Scheduling (CEOI12_jobs)C++11
95 / 100
480 ms34556 KiB
#include <bits/stdc++.h> using namespace std; int n, d, m; deque<pair<int,int>> dq; vector<vector<int>> res; bool check(int x) { deque<pair<int,int>> a = dq; res.clear(); res.resize(n + 1); for (int i = 1; i <= n; i++) { for (int j = 1; j <= x; j++) { int t = a.front().first; if (t > i) break; if (t + d >= i) { res[i].push_back(a.front().second); a.pop_front(); } else return false; if (a.empty()) return true; } } } int main() { cin.tie(0)->sync_with_stdio(0); cin >> n >> d >> m; dq.resize(m); for (int i = 0; i < m; i++) { cin >> dq[i].first; dq[i].second = i + 1; } sort(dq.begin(), dq.end()); int l = 1, r = 1000000, ans = -1; vector<vector<int>> sav; while (l <= r) { int m = (l + r) / 2; if (check(m)) { ans = m; sav = res; r = m - 1; } else l = m + 1; } cout << ans << '\n'; for (int i = 1; i <= n; i++) { for (auto &j : sav[i]) cout << j << ' '; cout << 0 << '\n'; } }

Compilation message (stderr)

jobs.cpp: In function 'bool check(int)':
jobs.cpp:9:28: warning: control reaches end of non-void function [-Wreturn-type]
    9 |   deque<pair<int,int>> a = dq;
      |                            ^~
#Verdict Execution timeMemoryGrader output
Fetching results...