제출 #1271681

#제출 시각아이디문제언어결과실행 시간메모리
1271681cmiucJob Scheduling (CEOI12_jobs)C++20
0 / 100
179 ms15048 KiB
#include <iostream> #include <vector> #include <algorithm> using namespace std; vector<pair<int, int>> s(1<<20); int n, m, d; bool verdict(int mid, bool print = 0){ int lst = 0, R = 0; for (int i=1;i<=n;i++){ while (s[R+1].first == i) R++; if (print == 1){ for (int j=lst+1;j <= min(lst + mid, R);j++) cout<<s[j].second<<' '; cout<<"0 \n"; } lst = min(lst + mid, R); if (lst < m and s[lst+1].first + d <= i) return 0; } return 1; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin>>n>>d>>m; for (int i=1, j;i<=m;i++){ cin>>j; s[i] = {j, i}; } sort(begin(s) + 1, begin(s) + m + 1); int l = 0, r = m; while (l + 1 < r){ int mid = (l + r) / 2; if (verdict(mid)) r = mid; else l = mid; } cout<<r<<endl; verdict(r, 1); }
#Verdict Execution timeMemoryGrader output
Fetching results...