프린터 분량 처리
의견: 0
사무실 프린터에 \(N\)개의 인쇄 작업이 \(1\)번부터 \(N\)번까지 차례로 대기열에 들어가 있다. \(i\)번 작업은 \(s_i\)장의 분량을 가진다. 프린터는 한 번에 정확히 \(K\)장까지만 처리할 수 있어 다음과 같이 동작한다.
- 대기열 맨 앞의 작업을 꺼낸다.
- 그 작업의 남은 분량이 \(K\)장 이하이면 그 작업을 완료로 인쇄하고 대기열에서 제거한다.
- 남은 분량이 \(K\)장보다 많으면 \(K\)장만 인쇄한 뒤 남은 분량을 가진 채로 그 작업을 대기열 맨 뒤로 보낸다.
모든 작업이 완료될 때까지 위 과정을 반복할 때, 작업이 완료되는 순서대로 작업 번호를 출력하여라.
\(1 \le N \le 100\,000\), \(1 \le K \le 1\,000\), \(1 \le s_i \le 100\,000\)
첫째 줄에 작업 수 \(N\)과 한 번에 처리 가능한 장수 \(K\)가 주어진다. 둘째 줄에 각 작업의 분량 \(s_1, s_2, \dots, s_N\)이 공백으로 구분되어 주어진다.
작업이 완료되는 순서대로 작업 번호를 한 줄에 공백으로 구분하여 출력한다.
4 2
3 1 4 2
2 4 1 31번(3장)은 2장 인쇄 후 1장 남아 뒤로, 2번(1장)은 완료, 3번(4장)은 2장 후 2장 남아 뒤로, 4번(2장)은 완료, 다시 1번(1장 남음) 완료, 3번(2장 남음) 완료. 완료 순서는 2, 4, 1, 3.
3 5
5 5 5
1 2 3모든 작업이 한 번에 인쇄되어 들어간 순서대로 완료된다.
막혔나요? 코인으로 단계별 힌트를 잠금 해제하세요 — 첫 힌트는 가벼운 방향 제시, 뒤로 갈수록 더 많이 알려 줍니다. 문제를 풀면 모든 힌트가 무료로 공개됩니다.
riseoj 작성
출처 Original
평가 및 의견
프린터 분량 처리
아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.
풀이 제출
프린터 분량 처리