제출 #899446

#제출 시각아이디문제언어결과실행 시간메모리
899446MongHwaJob Scheduling (CEOI12_jobs)C++17
100 / 100
187 ms16724 KiB
#include <iostream> #include <algorithm> using namespace std; #define X first #define Y second pair<int, int> arr[1000001]; int main() { ios::sync_with_stdio(0); cin.tie(0); int n, d, m; cin >> n >> d >> m; for(int i = 0; i < m; i++) { cin >> arr[i].X; arr[i].Y = i+1; } sort(arr, arr+m); int l = 0, r = m; while(l < r) { int mid = (l+r) / 2; int pos = 0, i = 0; bool ok = 1; for(int days = 1; days <= n && ok; days++) { for(i = pos; i < pos+mid && i < m; i++) { if(arr[i].X > days) break; if(arr[i].X + d < days) { ok = 0; break; } } pos = i; if(pos == m) break; } if(ok && pos == m) r = mid; else l = mid+1; } cout << l << '\n'; int pos = 0, i = 0; for(int days = 1; days <= n; days++) { for(i = pos; i < pos+l && i < m; i++) { if(arr[i].X <= days) cout << arr[i].Y << ' '; else break; } cout << "0\n"; pos = i; if(pos == m) continue; } }
#Verdict Execution timeMemoryGrader output
Fetching results...