문제 3293 · 비트 V
택배 상자의 완충재
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 택배 포장 작업대에서는 같은 종류의 물건을 여러 상자에 나누어 담는다. 오늘 준비한 상자는 모두 같은 크기이며, 모든 상자에 물건을 같은 개수만큼 넣는다. 작업자는 물건이 운송 중에 움직이지 않도록 물건 사이와 상자 양 끝에 완충재를 끼운다. 필요한 완충재를 한 번에 가져오기 위해 전체 사용 개수를 먼저 계산하려 한다. 상자 하나에는 물건을 일렬로 K개 넣는다. 서로 이웃한 두 물건 사이에는 완충재를 정확히 A개씩 넣는다. 물건 사이의 틈은 물건이 두 개 이상일 때 생기며, 물건이 K개이면 이러한 틈은 K−1곳이다. 물건이 한 개뿐이라면 물건 사이의 틈은 없으므로 이 부분에는 완충재를 사용하지 않는다. 이와 별도로, 물건 줄의 왼쪽 끝과 상자 벽 사이에 완충재를 B개 넣고, 오른쪽 끝과 상자 벽 사이에도 완충재를 B개 넣는다. 양 끝에 사용하는 완충재는 물건 사이에 사용하는 완충재와 따로 센다. 물건이 한 개뿐이어도 왼쪽 끝과 오른쪽 끝은 모두 존재하므로 각각 정해진 개수를 넣는다. A나 B가 0이면 해당 위치에는 완충재를 넣지 않는다. 이 방법으로 상자 N개를 모두 포장한다. 모든 상자는 같은 규칙을 따르며, 한 완충재를 두 위치나 두 상자에 나누어 사용하지 않는다. 작업 중에 버리는 완충재나 여분으로 준비하는 완충재는 없다고 가정한다. 완충재의 크기와 물건의 무게는 계산에 영향을 주지 않는다. 상자 수와 상자마다 넣는 물건 수, 위치별 완충재 수가 주어질 때 전체 상자를 포장하는 데 사용하는 완충재의 총개수를 구하는 프로그램을 작성한다. 완충재가 전혀 필요하지 않으면 총개수는 0이다.
입력
첫째 줄에 정수 N, K, A, B가 공백으로 구분되어 주어진다. 1 ≤ N ≤ 1000, 1 ≤ K ≤ 1000, 0 ≤ A ≤ 1000, 0 ≤ B ≤ 1000이다. N은 상자 수, K는 상자 하나의 물건 수, A는 물건 사이의 틈 한 곳에 넣는 완충재 수, B는 상자의 한쪽 끝에 넣는 완충재 수이다.
출력
전체 상자에 사용하는 완충재의 총개수를 정수 하나로 출력한다. 단위나 다른 문자는 출력하지 않는다.
예제 입력 1
4 3 2 1
예제 출력 1
24
예제 입력 2
7 1 9 3
예제 출력 2
42
예제 입력 3
5 8 0 0
예제 출력 3
0
힌트 펼치기
- 상자 하나에 필요한 개수는 (K−1)×A+2×B이다.
관련 서재 장
알고리즘 분류
사칙연산입출력풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |