제출 #1165021

#제출 시각아이디문제언어결과실행 시간메모리
1165021julia_08Job Scheduling (CEOI12_jobs)C++20
100 / 100
790 ms20456 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(){ cin.tie(0)->sync_with_stdio(0); cin >> n >> d >> m; for(int i=1; i<=m; i++){ int d; cin >> 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); cout << r << "\n"; for(int i=1; i<=n; i++){ for(auto j : jobs[i]) cout << j << " "; cout << 0 << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...