문제 3880 · 비트 III
수족관 보충 물통
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
작은 수족관에서는 전시 수조에 사용할 물을 별도의 보충 물통에 모아 둔다. 물통에는 최대 C리터까지 물을 담을 수 있으며, 관찰을 시작할 때에는 W리터의 물이 들어 있다. 담당자는 앞으로 D일 동안 같은 순서로 물통을 관리한 뒤, 마지막에 남아 있는 물과 넘쳐서 버린 물의 양을 기록하려 한다. 물의 양은 모두 정수 리터 단위로만 다루며, 관리 과정에서 증발하거나 새는 물은 없다. 하루의 첫 작업은 물통에 A리터의 물을 붓는 것이다. 물을 부은 직후 물의 양이 최대 용량 C리터를 넘으면, 초과한 양은 모두 배수구로 흘러가 버린다. 이때 물통 안에는 정확히 C리터가 남는다. 물을 부은 뒤에도 용량을 넘지 않았다면 버리는 물은 없다. 배수구로 흘러간 물은 이후 작업에서 다시 사용할 수 없으며, 그날 버린 양을 전체 기간 동안 버린 물의 합에 더한다. 그다음 작업은 물통에서 전시 수조로 물을 옮기는 것이다. 담당자는 B리터를 옮기려고 하지만, 물통에 남아 있는 물이 B리터보다 적으면 남은 물을 전부 옮긴다. 따라서 이 작업으로 물통의 물이 음수가 되는 일은 없다. 전시 수조로 옮긴 물은 정상적으로 사용한 물이므로, 넘쳐서 버린 물의 양에는 포함하지 않는다. 옮기지 못한 양을 다음 날 추가로 옮기는 규칙도 없다. 이 두 작업을 마치면 하루가 끝나며, 물통에 남은 물은 그대로 다음 날로 이어진다. 매일 물을 먼저 붓고, 넘친 물을 버린 다음, 전시 수조로 물을 옮긴다는 순서를 지켜야 한다. A나 B가 0인 경우에도 같은 규칙을 적용한다. D일의 작업이 모두 끝났을 때 물통에 남은 물의 양과, D일 동안 배수구로 흘러간 물의 총량을 차례대로 구한다.
입력
첫째 줄에 C, W, A, B, D가 공백으로 주어진다. 1 ≤ C ≤ 1,000, 0 ≤ W ≤ C, 0 ≤ A, B ≤ 1,000, 1 ≤ D ≤ 1,000이다. 입력의 모든 수는 정수이며, 물의 양의 단위는 리터이다.
출력
D일이 끝났을 때 물통에 남은 물의 양과 전체 기간 동안 넘쳐서 버린 물의 총량을 공백으로 구분하여 한 줄에 출력한다. 해당 양이 없으면 0을 출력한다.
예제 입력 1
10 4 8 3 2
예제 출력 1
7 7
예제 입력 2
7 1 2 5 3
예제 출력 2
0 0
예제 입력 3
5 5 0 0 4
예제 출력 3
5 0
힌트 펼치기
- 하루마다 물 붓기, 초과분 버리기, 물 옮기기를 순서대로 계산한다.
관련 서재 장
알고리즘 분류
구현사칙연산풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |