Submission #1248745

#TimeUsernameProblemLanguageResultExecution timeMemory
1248745vpinxJob Scheduling (CEOI12_jobs)C++20
0 / 100
190 ms131072 KiB
#include <bits/stdc++.h> using namespace std; #define int long long void solve() { int n, d, m; cin >> n >> d >> m; vector<pair<int, int>> v(m); for (int i = 0; i < m; i++) { cin >> v[i].first; v[i].second = i; } sort(v.begin(), v.end()); int ans, l = 1, r = m; vector<vector<int>> schedule; while (l <= r) { int mid = (l + r) / 2; bool good = false, bad = false; vector<vector<int>> cur_schedule(n, vector<int>(mid, -1)); for (int i = 0; i < n; i++) { for (int j = 0; j < mid; j++) { if (i * mid + j == m) { good = true; break; } if (v[i * mid + j].first + d <= i) { bad = true; break; } cur_schedule[i][j] = v[i * mid + j].second; } if (good or bad) break; } if (good) { schedule = cur_schedule, ans = mid; r = mid - 1; }else l = mid + 1; } cout << ans << "\n"; for (int i = 0; i < n; i++) { for (int j = 0; j < ans; j++) { if (schedule[i][j] != -1) cout << schedule[i][j] + 1 << " "; } cout << 0 << "\n"; } } int32_t main() { ios::sync_with_stdio(false); cin.tie(nullptr); solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...