제출 #988130

#제출 시각아이디문제언어결과실행 시간메모리
988130vjudge1Job Scheduling (CEOI12_jobs)C++17
16 / 100
317 ms17764 KiB
#include <bits/stdc++.h> using namespace std; int main() { int N, D, M; cin >> N >> D >> M; vector<int> jobRequests(M); for (int i = 0; i < M; ++i) { cin >> jobRequests[i]; } vector<int> jobsPerDay(N + 1, 0); for (int i = 0; i < M; ++i) { jobsPerDay[jobRequests[i]]++; } priority_queue<int, vector<int>, greater<int>> availableMachines; int maxMachines = 0; vector<vector<int>> schedule(N + 1); for (int day = 1; day <= N; ++day) { while (!availableMachines.empty() && availableMachines.top() < day) { availableMachines.pop(); } for (int job = 0; job < jobsPerDay[day]; ++job) { if (availableMachines.empty() || availableMachines.top() > day + D) { maxMachines++; availableMachines.push(day + D); } else { int nextAvailableDay = availableMachines.top(); availableMachines.pop(); availableMachines.push(nextAvailableDay + 1); } schedule[day].push_back(day); } } cout << maxMachines << endl; for (int day = 1; day <= N; ++day) { for (int job : schedule[day]) { cout << job << " "; } cout << "0" << endl; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...