| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1296707 | Sunbae | Job Scheduling (CEOI12_jobs) | C++17 | 141 ms | 16848 KiB |
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
vector<int> e[N];
signed main(){
int n, d, m; scanf("%d %d %d", &n, &d, &m);
for(int i = 0, x; i<m; ++i){
scanf("%d", &x);
e[x-1].push_back(i);
}
int low = 1, high = n, ans;
while(low <= high){
int mid = (low + high)>>1;
queue<int> q;
for(int d = 0; d<n; ++d){
for(int x: e[d]) q.push(x);
for(int i = 0; !q.empty() && i<mid; ++i) q.pop();
}
if(q.size()/mid <= d) high = (ans = mid)-1;
else low = mid+1;
}
printf("%d\n", ans);
queue<int> q;
for(int d = 0; d<n; ++d){
for(int x: e[d]) q.push(x);
for(int i = 0; !q.empty() && i<ans; ++i){
printf("%d ", q.front()+1); q.pop();
}
puts("0");
}
}
컴파일 시 표준 에러 (stderr) 메시지
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
