문제 3055 · 비트 V
침구 카트의 빈자리
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 호텔의 정리 담당자는 객실에 가져갈 새 침구를 카트에 싣는다. 카트에는 크기가 같은 칸이 여러 개 있으며, 침구 한 묶음은 정확히 한 칸을 차지한다. 침구 묶음을 풀어서 나누어 싣거나 한 칸에 두 묶음 이상을 넣는 일은 없다. 작업을 시작할 때 카트에는 침구 N묶음이 실려 있다. 담당자는 첫 번째 보관실에서 A묶음을 내려놓고, 이어서 두 번째 보관실에서 새 침구 B묶음을 가져와 카트에 싣는다. 그 뒤 바로 객실 구역으로 이동한다. 두 보관실 사이에서 다른 침구를 싣거나 내리지는 않는다. 카트의 전체 칸 수는 C다. 처음 실린 침구 수 N은 C 이하이며, 첫 번째 보관실에 내려놓는 침구 수 A는 N 이하이다. 또한 두 번째 보관실에서 침구를 모두 실은 뒤에도 전체 침구 수가 C를 넘지 않는 입력만 주어진다. 따라서 침구가 부족해서 내려놓지 못하거나, 공간이 부족해서 일부 침구를 남겨 두는 상황은 없다. 담당자는 객실 구역에 도착하기 전에 카트에서 비어 있는 칸이 몇 개인지 기록하려고 한다. 비어 있는 칸이란 침구 묶음이 들어 있지 않은 칸을 뜻한다. 침구를 내려놓으면 그 수만큼 빈칸이 늘어나고, 새 침구를 실으면 그 수만큼 빈칸이 줄어든다. 작업 도중의 빈칸 수가 아니라 두 보관실에서의 작업을 모두 마친 뒤의 빈칸 수를 구해야 한다. 처음부터 카트가 비어 있을 수도 있고, 어느 보관실에서도 침구를 옮기지 않을 수도 있다. 작업을 마친 뒤 모든 칸이 차 있다면 빈칸 수는 0이다. 카트의 칸 수와 처음 침구 수, 내려놓은 수, 새로 실은 수가 주어질 때 최종 빈칸 수를 계산한다. 입력에 없는 이동이나 추가 작업은 고려하지 않는다.
입력
첫째 줄에 정수 C, N, A, B가 공백으로 구분되어 주어진다. 1 ≤ C ≤ 1,000이다. 0 ≤ A ≤ N ≤ C이다. 0 ≤ B ≤ C - N + A이다.
출력
두 보관실에서의 작업을 모두 마친 뒤 카트에서 비어 있는 칸 수를 정수 하나로 출력한다.
예제 입력 1
24 17 6 9
예제 출력 1
4
예제 입력 2
8 8 3 3
예제 출력 2
0
예제 입력 3
13 0 0 0
예제 출력 3
13
힌트 펼치기
- 최종 침구 수는 처음 침구 수에서 내려놓은 수를 빼고 새로 실은 수를 더한 값이다.
관련 서재 장
알고리즘 분류
사칙연산풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |