문제 4458 · 바이트 I
마지막 승객까지 세는 버스
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 마을의 버스는 정류장 N개를 번호가 작은 순서대로 한 번씩 방문한다. 정류장 번호는 1번부터 N번까지이며, 버스가 1번 정류장에 도착하기 전에는 승객이 한 명도 없다. 이 버스에는 운전자를 제외하고 최대 C명의 승객이 탈 수 있다. 노선 담당자는 정류장별 기록을 이용하여 운행 중 버스를 타지 못한 사람의 수를 조사하려 한다. 각 정류장의 기록에는 내린 승객 수 A와 새로 타려고 기다린 사람 수 B가 적혀 있다. 버스가 정류장에 도착하면 먼저 기록에 적힌 A명이 모두 내린다. 그다음 기다리던 B명이 빈자리가 있는 만큼 버스에 탄다. 빈자리가 B개 이상이면 기다리던 사람이 모두 타고, 빈자리가 B개보다 적으면 빈자리 수만큼만 탄다. 타지 못한 사람은 그 정류장에서 기다림을 끝내며, 이후 정류장의 기록에 다시 포함되지 않는다. 승객이 타고 내리는 동안 버스의 정원은 변하지 않는다. 모든 기록은 실제로 가능한 기록이다. 즉, 각 정류장에서 내리는 승객 수는 그 정류장에 도착했을 때 버스 안에 있는 승객 수를 넘지 않는다. 앞선 정류장에서 누가 탔는지는 구분할 필요가 없으며, 정류장을 떠날 때 버스 안에 남은 사람 수만 다음 정류장으로 이어진다. 마지막 정류장에서도 같은 규칙으로 승객이 타고 내린다. 마지막 정류장이라는 이유로 남아 있는 승객이 자동으로 내리지는 않는다. 전체 노선에서 버스를 타지 못한 사람 수의 합과, 한 정류장에서 타지 못한 사람 수가 가장 많았던 정류장 번호를 구한다. 가장 많은 수를 기록한 정류장이 여러 곳이면 번호가 가장 작은 정류장을 고른다. 모든 정류장에서 기다리던 사람이 전부 탔다면 정류장 번호 대신 0을 사용한다. 또한 마지막 정류장을 떠난 직후 버스 안에 있는 승객 수도 함께 구한다.
입력
첫째 줄에 정류장 수 N과 버스 정원 C가 공백으로 구분되어 주어진다. N과 C는 정수이며 1 ≤ N ≤ 90,000, 1 ≤ C ≤ 1,000이다. 다음 N개 줄 중 i번째 줄에 i번 정류장에서 내린 승객 수 A_i와 새로 타려고 기다린 사람 수 B_i가 공백으로 구분되어 주어진다. A_i와 B_i는 정수이며 0 ≤ A_i, B_i ≤ 9이다. 각 A_i는 i번 정류장에 도착한 직후 버스 안에 있는 승객 수 이하임이 보장된다.
출력
첫째 줄에 전체 노선에서 타지 못한 사람 수의 합, 타지 못한 사람 수가 가장 많았던 정류장 번호, 마지막 정류장을 떠난 직후의 승객 수를 순서대로 공백으로 구분하여 출력한다. 최댓값이 같은 정류장이 여러 곳이면 가장 작은 번호를 출력한다. 타지 못한 사람이 한 명도 없으면 정류장 번호로 0을 출력한다.
예제 입력 1
5 4 0 3 1 5 2 1 0 4 3 2
예제 출력 1
6 2 3
예제 입력 2
4 6 0 4 2 1 3 0 0 2
예제 출력 2
0 0 2
예제 입력 3
1 1 0 9
예제 출력 3
8 1 1
힌트 펼치기
- 각 정류장에서 내리는 사람을 먼저 처리한 뒤 빈자리 수를 계산한다.
- 현재까지의 최댓값보다 엄격하게 큰 값이 나왔을 때만 정류장 번호를 바꾸면 동점을 처리할 수 있다.
관련 서재 장
알고리즘 분류
구현시뮬레이션풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |