문제 4764 · 바이트 I
마지막 칸의 조심 택배
댓글 0| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms | 측정하지 않음 | 0 | 0 | 0 | 0.00% |
문제
택배 분류장에서는 운반 수레에 상자를 싣고 포장 구역으로 보낸다. 상자는 컨베이어에 놓인 순서대로 한 개씩 도착하며, 작업자는 이 순서를 바꾸거나 상자를 잠시 옆에 내려놓을 수 없다. 모든 수레의 무게 한도는 C이며, 각 상자의 무게는 C 이하인 양의 정수다. 상자에는 일반 상자와 조심 상자라는 두 종류가 있다. 작업자는 처음에 빈 수레 한 대를 준비한다. 상자가 도착했을 때 현재 수레에 실린 상자의 무게 합과 도착한 상자의 무게를 더한 값이 C 이하라면 그 상자를 현재 수레에 싣는다. 합이 정확히 C인 경우도 실을 수 있다. 합이 C를 초과한다면 현재 수레를 즉시 보내고, 새 빈 수레를 준비하여 도착한 상자를 싣는다. 무게 합이 한도와 같아졌다는 이유만으로 수레를 즉시 보내지는 않는다. 조심 상자는 다른 상자와 함께 실을 수 있지만, 그 수레에 싣는 마지막 상자여야 한다. 따라서 조심 상자를 실은 수레는 남은 무게 여유와 관계없이 즉시 보낸다. 그 뒤에 상자가 더 도착하면 새 빈 수레를 준비한다. 일반 상자를 실은 뒤에는 다음 상자가 도착할 때까지 현재 수레를 그대로 둔다. 작업자는 수레에 이미 실은 상자를 꺼내거나 다른 수레로 옮길 수 없으며, 위 규칙 이외의 이유로 수레를 미리 보내지 않는다. 마지막 상자까지 처리한 뒤 상자가 남아 있는 수레가 있다면 그 수레도 보낸다. 빈 수레는 보내지 않으며 사용한 수레 수에도 포함하지 않는다. 수레 한 대의 남은 무게 여유는 C에서 그 수레에 실린 상자의 무게 합을 뺀 값이다. 상자가 한 개 이상 주어지므로 사용하는 수레는 반드시 존재한다. 도착한 모든 상자를 처리했을 때 사용한 수레 수와, 보낸 모든 수레의 남은 무게 여유를 합한 값을 구하는 프로그램을 작성하라.
입력
첫째 줄에 상자 수 N과 수레의 무게 한도 C가 공백으로 구분되어 주어진다. N과 C는 정수이며 1 ≤ N ≤ 60,000, 1 ≤ C ≤ 999다.
다음 N개의 줄에는 도착 순서대로 각 상자의 무게 W와 종류 T가 공백으로 구분되어 주어진다. W와 T는 정수이며 1 ≤ W ≤ C, T ∈ {0, 1}이다. T가 0이면 일반 상자이고, 1이면 조심 상자다.
출력
첫째 줄에 사용한 수레 수와 모든 수레의 남은 무게 여유의 합을 공백으로 구분하여 정수로 출력한다.
예제 입력 1
7 10 4 0 6 0 2 1 3 0 5 1 2 0 8 0
예제 출력 1
4 10
예제 입력 2
3 5 1 1 1 1 1 1
예제 출력 2
3 12
예제 입력 3
1 5 5 0
예제 출력 3
1 0
힌트 펼치기
- 현재 수레에 실린 무게를 관리하면서 수레를 보내는 순간을 처리한다.
- 사용한 수레 수가 K라면 남은 무게 여유의 합은 K × C에서 모든 상자의 무게 합을 뺀 값이다.
관련 서재 장
알고리즘 분류
구현시뮬레이션풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
댓글 0
로그인하면 댓글을 쓸 수 있습니다.
댓글 접기·펼치기
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| JavaScript | 브라우저 JavaScript | 1000ms / 테스트 | 측정하지 않음 |
| TypeScript | TypeScript 5.9.3 | 1000ms / 테스트 | 측정하지 않음 |
| Python 3 | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음 |
| C | YoWASP Clang 22 | 2000ms / 테스트 | 측정하지 않음 |
| C++ | YoWASP Clang 22 / libc++ | 2000ms / 테스트 | 측정하지 않음 |
| Java | OpenJDK javac + TeaVM (Java 21 문법) | 3000ms / 테스트 | 측정하지 않음 |
| Lua | Wasmoon 1.16.0 / Lua 5.4 | 3000ms / 테스트 | 측정하지 않음 |
| Ruby | Ruby 3.4 / ruby.wasm 2.10.1 | 5000ms / 테스트 | 측정하지 않음 |
| Scheme | BiwaScheme 0.8.3 | 5000ms / 테스트 | 측정하지 않음 |
| Prolog | SWI-Prolog / swipl-wasm 8.2.5 | 5000ms / 테스트 | 측정하지 않음 |
| Perl | Perl 5.28 / WebPerl 0.09-beta | 5000ms / 테스트 | 측정하지 않음 |