문제 4482 · 바이트 III
창고의 마감 수량표
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 물류 창고는 같은 규격의 보관 상자만 취급한다. 창고 담당자는 여러 날의 입고량과 출고 요청량을 받아 마지막 날의 재고와 전체 기간의 미처리 요청량을 계산하려 한다. 모든 상자는 서로 구별하지 않으며, 상자를 쪼개거나 다른 물품으로 바꾸어 요청을 처리할 수는 없다. 첫째 날 업무를 시작하기 전 창고의 재고는 0개이다. 하루의 업무는 반드시 입고와 출고 순서로 진행한다. 먼저 그날 입고되는 상자 A개를 기존 재고에 모두 더한다. 입고를 마친 뒤 그날 요청된 B개의 출고를 처리한다. 입고 직후의 재고가 B개 이상이면 요청한 B개를 모두 출고한다. 재고가 B개보다 적으면 창고에 있는 상자를 전부 출고하고, 요청량에서 실제 출고량을 뺀 만큼을 그날의 미처리 요청량으로 기록한다. 어느 경우든 출고 후 재고가 음수가 되는 일은 없다. 그날의 미처리 요청은 마감과 함께 취소한다. 따라서 다음 날에 상자가 들어와도 이전 날의 미처리 요청을 다시 처리하지 않는다. 다음 날에는 전날 출고 후 남은 재고만 이어받고, 새로 주어진 입고량과 출고 요청량으로 동일한 절차를 진행한다. 반대로 출고하고 남은 상자는 버리지 않으며 이후 날짜의 요청을 처리하는 데 사용할 수 있다. 창고의 보관 공간에는 제한이 없고, 기간 중 재고가 저절로 줄어드는 일도 없다. 입고량과 출고 요청량은 각각 0일 수 있다. 입고량이 0인 날에도 기존 재고로 출고할 수 있으며, 출고 요청량이 0인 날에는 입고 후의 재고를 그대로 남긴다. 하루에 입고와 출고가 모두 존재하면 반드시 입고부터 진행하므로, 당일 들어온 상자도 당일 요청에 사용할 수 있다. 담당자에게 주어진 날짜 순서대로 수량표를 처리한다. 마지막 날의 출고까지 모두 마친 뒤 남은 상자 수와, 각 날짜에 기록한 미처리 요청량을 모두 더한 값을 구한다. 전체 기간의 총입고량과 총요청량만 비교해서는 중간 날짜에 취소된 요청을 알 수 없으므로 업무 순서를 그대로 따른다.
입력
첫째 줄에 날짜 수를 나타내는 정수 N이 주어진다. 1 ≤ N ≤ 24,000이다. 다음 N개 줄에는 첫째 날부터 날짜 순서대로 정수 A와 B가 주어진다. A는 그날의 입고량이고 B는 그날의 출고 요청량이다. 0 ≤ A, B ≤ 1,000,000이다.
출력
마지막 날의 출고 후 남은 상자 수와 전체 미처리 요청량을 이 순서대로 공백으로 구분하여 출력한다. 두 값은 모두 정수이며, 해당 수량이 없으면 0을 출력한다.
예제 입력 1
4 5 3 1 6 10 2 0 9
예제 출력 1
0 4
예제 입력 2
3 0 0 7 0 2 3
예제 출력 2
6 0
예제 입력 3
2 0 4 4 0
예제 출력 3
4 4
힌트 펼치기
- 현재 재고와 지금까지의 미처리 요청량을 각각 하나의 변수에 저장한다.
관련 서재 장
알고리즘 분류
구현누적풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |