제출 #706108

#제출 시각아이디문제언어결과실행 시간메모리
706108BodishaJob Scheduling (CEOI12_jobs)C++17
15 / 100
444 ms13768 KiB
#include <bits/stdc++.h> #define MAX_M 1000000 using namespace std; int n, d, m; pair<int, int> requests[MAX_M]; bool cmp(pair<int, int> a, pair<int, int> b) { if(a.first == b.first) { return a.second < b.second; } return a.first < b.first; } bool check(int x) { for(int i = 0; i < m; i++) { int day = i / x; if(requests[i].first + d < day) { return false; } } return true; } int main() { cin >> n >> d >> m; for(int i = 0; i < m; i++) { cin >> requests[i].first; requests[i].second = i + 1; } sort(requests, requests + m, cmp); int l = 1, r = m; int ans = 1; while(l <= r) { int mid = l + (r - l) / 2; if(check(mid)) { ans = mid; r = mid - 1; } else { l = mid + 1; } } cout << ans << "\n"; int ptr = 0; for(int i = 0; i < n; i++) { int counter = 0; while(ptr < m && counter < ans) { cout << requests[ptr].second << " "; ptr++; counter++; } cout << "0\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...