Submission #1213859

#TimeUsernameProblemLanguageResultExecution timeMemory
1213859badge881Job Scheduling (CEOI12_jobs)C++20
100 / 100
821 ms20448 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 1e5 + 10; vector<int> requests[MAXN], jobs[MAXN]; int n, d, m; bool check(int x) { priority_queue<pair<int, int>> q; for (int i = 1; i <= n; i++) { jobs[i].clear(); for (auto j : requests[i]) q.push({-i, j}); int cnt = 0; while (cnt < x && !q.empty()) { if (-q.top().first < i - d) return false; jobs[i].push_back(q.top().second); q.pop(); cnt++; } } return true; } int main() { scanf("%d %d %d", &n, &d, &m); for (int i = 1; i <= m; i++) { int d; scanf("%d", &d); requests[d].push_back(i); } int l = 1, r = m; while (l < r) { int mid = l + (r - l) / 2; if (check(mid)) r = mid; else l = mid + 1; } check(r); printf("%d\n", r); for (int i = 1; i <= n; i++) { for (auto j : jobs[i]) printf("%d ", j); printf("0\n"); } return 0; }

Compilation message (stderr)

jobs.cpp: In function 'int main()':
jobs.cpp:42:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   42 |     scanf("%d %d %d", &n, &d, &m);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
jobs.cpp:47:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   47 |         scanf("%d", &d);
      |         ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...