본문으로 이동
코드패스 by Devin.KR

문제 3832 · 바이트 III

기다릴 수 있는 충전

인증 제출 통계 · 5분마다 갱신 · 정답 비율 = 정답 제출 / 전체 제출
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1000ms / 테스트 (언어별 보정은 아래 표)메모리: 측정하지 않음(브라우저 채점)0000.00%

문제

전기차 충전소에 충전기가 한 대 설치되어 있다. 충전기는 시각 0부터 사용할 수 있으며, 한 번에 자동차 한 대만 충전할 수 있다. 이 충전소를 찾아오는 자동차 N대의 도착 시각과 필요한 충전 시간이 미리 주어진다. 모든 시각과 시간은 분 단위 정수이며, 날짜가 바뀌어도 시각을 0으로 되돌리지 않고 계속 증가시켜 표시한다. 자동차는 도착한 순서대로 충전 가능 여부를 결정한다. 도착 시각이 같은 자동차는 입력에 먼저 등장한 자동차부터 처리한다. 각 자동차를 처리할 때는 앞서 충전하기로 결정한 자동차들의 충전 일정을 모두 유지한다. 앞선 일정이 끝난 뒤 충전기를 사용할 수 있는 가장 이른 시각과 자신의 도착 시각 중 더 늦은 시각이 이 자동차의 충전 시작 예정 시각이다. 모든 자동차는 도착한 뒤 최대 W분까지 기다릴 수 있다. 충전 시작 예정 시각에서 도착 시각을 뺀 값이 W 이하라면 해당 자동차는 충전하기로 결정한다. 정확히 W분을 기다리는 경우도 충전한다. 충전하기로 결정한 자동차는 예정된 시각에 충전을 시작하고, 필요한 충전 시간만큼 충전기를 독점한다. 충전 도중에 다른 자동차를 위해 자리를 비우지 않는다. 기다려야 하는 시간이 W분보다 길다면 해당 자동차는 충전을 포기하고 즉시 다른 충전소로 떠난다. 이 자동차는 충전 일정에 아무런 영향을 주지 않는다. 뒤에 도착하는 자동차는 자신의 도착 시각과 필요한 충전 시간을 이용해 별도로 같은 규칙을 적용한다. 앞선 자동차가 포기했다는 이유로 함께 포기하지 않는다. 어떤 자동차의 충전 종료 시각과 다음 자동차의 충전 시작 시각이 같아도 된다. 충전 사이에 정리 시간은 필요하지 않다. 주어진 자동차를 모두 처리한 뒤, 충전하기로 결정한 자동차 수와 마지막 충전이 끝나는 시각을 구한다. 충전하기로 결정한 자동차가 하나도 없다면 마지막 종료 시각은 0으로 정한다.

입력

첫째 줄에 정수 N과 W가 주어진다. 1≤N≤20000, 0≤W≤1000000이다.
다음 N개 줄의 i번째 줄에 정수 t_i와 d_i가 주어진다. t_i는 도착 시각이며 0≤t_i≤1000000이다. d_i는 필요한 충전 시간이며 1≤d_i≤1000이다.
도착 시각은 감소하지 않는 순서로 주어진다. 즉, 모든 1≤i<N에 대해 t_i≤t_(i+1)이다.

출력

충전하기로 결정한 자동차 수와 마지막 충전 종료 시각을 공백으로 구분하여 한 줄에 출력한다. 충전한 자동차가 없다면 0 0을 출력한다.

예제 입력 1

5 3
0 5
1 2
2 2
6 4
6 1

예제 출력 1

3 11

예제 입력 2

4 0
2 3
2 1
5 2
8 1

예제 출력 2

3 9

예제 입력 3

3 4
0 4
0 2
0 1

예제 출력 3

2 6
힌트 펼치기
  • 현재까지 확정한 마지막 충전 종료 시각만 저장하면 다음 자동차의 시작 예정 시각을 구할 수 있다.
  • 충전을 포기한 자동차를 처리할 때는 마지막 종료 시각을 바꾸지 않는다.

관련 서재 장

관련 장

출처: Devin.KR 자체 제작

알고리즘 분류구현시뮬레이션

풀이 작성

연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.

Python 기본 시간 제한 = 문제 시간 제한 × 3 + 2초. 문제별 예외는 아래 표에 반영됩니다. 표준 라이브러리만 지원합니다.

Ctrl+Enter: 연습 채점 · Tab: 들여쓰기 · Esc 후 Tab: 다음 요소로 이동. 언어별 초안은 이 브라우저에 저장됩니다. JavaScript 입력: require('fs').readFileSync(0, 'utf8'), readline 또는 input().

로그인하면 인증 제출을 사용할 수 있습니다.

풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.

    연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.

    이 브라우저의 연습 기록

      언어별 제한

      테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.

      언어엔진(버전)시간 제한메모리
      javascript사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름)1000ms / 테스트측정하지 않음(브라우저 채점)
      pythonPyodide 314.0.7 (CPython 3.14 WASM)5000ms / 테스트측정하지 않음(브라우저 채점)