제출 #768278

#제출 시각아이디문제언어결과실행 시간메모리
768278orcslopJob Scheduling (CEOI12_jobs)C++17
15 / 100
211 ms17060 KiB
#include <bits/stdc++.h> using namespace std; #define sz(x) (int)(x).size() const int MAXN = 1e5; const int MAXM = 1e6; int n, d, m; pair<int, int> jobs[MAXM]; queue<int> q; bool check(int machines){ while(!q.empty()) q.pop(); int index = 0; for(int i = 1; i <= n; i++){ int cnt = 0; while(index < m && jobs[index].first == i) { q.push(i); index++; } for(int i = 0; i < machines; i++){ if(!q.empty()) { int sent = q.front(); if(i - sent > d) return false; q.pop(); } else break; } } return q.empty(); } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> d >> m; for(int i = 0; i < m; i++) { cin >> jobs[i].first; jobs[i].second = i + 1; } sort(jobs, jobs + m); int low = 0, high = m; while (low < high) { int mid = low + (high - low) / 2; if (check(mid)) high = mid; else low = mid + 1; } cout << low << '\n'; while(!q.empty()) q.pop(); int index = 0; for(int i = 1; i <= n; i++){ while(index < m && jobs[index].first == i) { q.push(jobs[index].second); index++; } for(int i = 0; i < low; i++){ if(!q.empty()) { int sent = q.front(); cout << sent << ' '; q.pop(); } else break; } cout << "0\n"; } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

jobs.cpp: In function 'bool check(int)':
jobs.cpp:16:13: warning: unused variable 'cnt' [-Wunused-variable]
   16 |         int cnt = 0;
      |             ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...