문제 3230 · 비트 III
임시 보관대의 하루
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
물류 창고에는 출고를 기다리는 상자를 올려 두는 임시 보관대가 있다. 보관대에는 상자를 최대 C개까지 놓을 수 있으며, 작업을 시작할 때 보관대는 비어 있다. 모든 상자는 같은 크기이고, 보관대의 남은 공간은 상자 개수만으로 계산한다. 창고는 하루 동안 N차례 작업을 진행한다. 각 작업에는 도착 상자 수 A와 출고 요청 상자 수 B가 정해져 있다. 작업자는 먼저 도착한 상자를 보관대에 올린다. 빈자리가 충분하면 도착한 상자를 모두 올린다. 빈자리가 부족하면 빈자리 수만큼만 올리고, 나머지는 별도 창고로 보낸다. 별도 창고로 보낸 상자는 이후 작업에서 다시 돌아오지 않으며, 임시 보관대의 상자 수에도 포함하지 않는다. 도착 상자 처리가 끝나면 같은 작업의 출고 요청을 처리한다. 보관대에 상자가 B개 이상 있으면 정확히 B개를 꺼낸다. B개보다 적게 있으면 보관대에 있는 상자를 모두 꺼낸다. 이때 채우지 못한 출고 요청은 취소되며, 다음 작업으로 넘기지 않는다. 따라서 이번 작업에서 막 도착해 보관대에 올라간 상자도 곧바로 출고할 수 있다. 작업은 입력에 주어진 순서대로 진행한다. 각 작업이 끝난 뒤 남은 상자는 다음 작업이 시작될 때까지 그대로 보관대에 남는다. 도착 상자 수나 출고 요청 상자 수가 0인 작업도 같은 규칙으로 처리한다. 특히 출고로 빈자리가 생기더라도, 그 작업에서 이미 별도 창고로 보낸 상자를 다시 가져와 올리지는 않는다. 모든 작업을 마친 뒤, 하루 동안 별도 창고로 보낸 상자의 총개수와 임시 보관대에 남은 상자 수를 구하는 프로그램을 작성한다. 별도 창고로 보낸 상자가 한 개도 없다면 그 총개수는 0이다.
입력
첫째 줄에 작업 횟수 N과 보관대의 최대 상자 수 C가 공백으로 구분되어 주어진다. N과 C는 각각 1 이상 1,000 이하의 정수이다. 다음 N개 줄에는 각 작업의 도착 상자 수 A와 출고 요청 상자 수 B가 작업 순서대로 주어진다. A와 B는 각각 0 이상 1,000 이하의 정수이다.
출력
별도 창고로 보낸 상자의 총개수와 모든 작업이 끝난 뒤 보관대에 남은 상자 수를 이 순서대로 공백으로 구분하여 한 줄에 출력한다.
예제 입력 1
4 8 6 2 7 3 1 9 10 4
예제 출력 1
5 4
예제 입력 2
3 5 0 4 5 0 0 5
예제 출력 2
0 0
예제 입력 3
1 1 1000 0
예제 출력 3
999 1
힌트 펼치기
- 각 작업에서 도착 상자를 처리한 다음 출고 요청을 처리한다.
- 현재 상자 수에 도착 상자 수를 더한 값이 C를 넘으면, 초과한 만큼 별도 창고로 보낸다.
관련 서재 장
알고리즘 분류
구현시뮬레이션풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |