나룻배 싣기 II

면접 대비

시간 제한1초메모리 제한128 MB

요약
차량 도착 시각, 페리 정원 n, 편도 시간 t가 주어질 때 모든 차를 옮기는 가장 이른 완료 시각과 최소 편도 운항 횟수를 구한다.
난이도

보통10점 중 5점

유형
그리디, 구현, 시뮬레이션, 배열
정답자
아직 제출이 없습니다

문제

강을 건너는 나룻배(페리)가 있다. 이 배는 한 번 건널 때 자동차를 최대 nn대까지 실을 수 있으며, 맞은편 강가까지 건너가는 데 tt분, 다시 원래 강가로 돌아오는 데도 tt분이 걸린다. 자동차는 배의 한쪽 끝으로 올라타고, 배가 강을 건너면 반대쪽 끝으로 내린다.

자동차 mm대가 정해진 시간표에 따라 나룻배 선착장에 도착한다. 운영자는 원하는 시각에 배를 출발시킬 수 있지만, 그 시각까지 이미 도착한 자동차만 실을 수 있다. 모든 자동차를 맞은편 강가로 옮길 수 있는 가장 이른 시각은 언제인가? 또한 그 시각까지 모든 자동차를 옮기기 위해 배가 최소 몇 번 편도로 강을 건너야 하는가?

입력

첫째 줄에 테스트 케이스의 수 cc가 주어진다.

각 테스트 케이스의 첫째 줄에는 세 정수 nn, tt, mm이 주어진다. 이어지는 mm개의 줄에는 각 자동차의 도착 시각이 하루가 시작된 뒤 지난 분 단위로 한 줄에 하나씩 주어지며, 도착 시각은 비내림차순으로 정렬되어 있다.

0<n,t,m<14400 < n, t, m < 1440이다.

출력

각 테스트 케이스마다 두 정수를 한 줄에 공백으로 구분하여 출력한다. 첫 번째 값은 마지막 자동차가 맞은편 강가에 도착하는 시각(하루가 시작된 뒤 지난 분)이고, 두 번째 값은 그 시각까지 모든 자동차를 옮기기 위한 배의 최소 편도 운행 횟수이다.

예제4

  1. 예제 1

    입력
    2
    2 10 10
    0
    10
    20
    30
    40
    50
    60
    70
    80
    90
    2 10 3
    10
    30
    40
    
    예상 출력
    100 5
    50 2
    
  2. 예제 2

    입력
    1
    5 7 1
    0
    
    예상 출력
    7 1
    
  3. 예제 3

    입력
    1
    3 5 3
    0
    100
    200
    
    예상 출력
    205 1
    
  4. 예제 4

    입력
    1
    4 1 8
    0
    10
    20
    30
    40
    50
    60
    70
    
    예상 출력
    71 2