Submission #263425

#TimeUsernameProblemLanguageResultExecution timeMemory
263425DS007Job Scheduling (CEOI12_jobs)C++14
100 / 100
103 ms1224 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 5, M = 1e6; int a[N], cpy[N], n, d, m; bool check(int mid) { for (int i = 1; i <= n; i++) cpy[i] = a[i]; for (int i = 1, last = 1; i <= n; i++) { int left = mid; while (left > 0 && last <= i) { if (left >= cpy[last]) left -= cpy[last], last++; else cpy[last] -= left, left = 0; } if (last > n + 1) exit(0); if (i - last >= d) return false; } return true; } int solveTestCase() { cin >> n >> d >> m; for (int i = 0; i < m; i++) { int temp; cin >> temp; if (temp >= N) exit(0); a[temp]++; } int l = 1, h = M, ans = M; while (l <= h) { //cerr << l << " " << h << "\n"; int mid = (l + h) / 2; if (check(mid)) ans = mid, h = mid - 1; else l = mid + 1; } cout << ans << "\n"; for (int i = 0; i < n; i++) cout << "0\n"; return 0; } signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int t = 1; //cin >> t; while (t--) solveTestCase(); }
#Verdict Execution timeMemoryGrader output
Fetching results...