아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

여권

면접 대비

시간 제한2초메모리 제한256 MB

요약
도착 시각과 n개 창구의 근무 시간, 처리 시간이 주어질 때, 방문자가 순서대로 모든 창구를 마치는 가장 빠른 시각을 구하거나 불가능하면 No를 출력한다.
난이도

보통10점 중 4점

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

문제

여권 같은 서류를 발급받으려면 정해진 순서대로 여러 곳을 돌아다니며 각기 다른 일을 처리해야 한다는 것은 많은 사람에게 익숙한 상황이다. 증명서를 떼고, 신청서를 쓰고, 복사본을 인증받는 식이다. 이런 곳들을 하나로 묶은 통합 센터가 생기면서 각 기관은 창구 하나씩으로 바뀌었다. 그래도 창구마다 운영 시간이 다르다는 문제는 남아 있다.

어떤 사람이 여권을 받으러 hh시 mm분에 통합 센터에 도착할 계획이다. 그는 정해진 순서대로 정확히 n개의 창구를 돌아야 한다는 것을 알고 있고, 각 창구의 운영 시간도 알고 있다. 마지막 창구에서의 업무가 끝나면 여권을 받는다. 그는 다른 방문객이 없을 때 하루가 끝나기 전에 여권을 받을 수 있을지 알고 싶어 한다.

각 창구에 대해 개점 시각과 폐점 시각을 알고 있다. 또한 각 창구에서 방문객 한 명을 처리하는 데 걸리는 시간이 몇 분인지도 알고 있다.

방문객은 어떤 분의 시작 시각에 창구에 다가간다고 본다. 창구의 개점 시각은 창구가 이미 운영 중인 첫 번째 분이고, 폐점 시각은 창구가 더 이상 운영되지 않는 첫 번째 분이다. 예를 들어 창구가 12:00에 열고 20:00에 닫으며 처리가 11분 걸린다면, 사람이 12:00부터 19:49까지 사이에 창구에 다가가면 곧바로 처리되고, 11:59 이전에 다가가면 12:00에 처리가 시작되며, 19:50 이후에 다가가면 처리를 받지 못한다.

사람은 창구 사이를 즉시 이동한다. 따라서 어떤 창구에서의 처리가 10분 걸리고 사람이 12:45에 그 창구에 다가갔다면, 다음 창구에서의 처리는 12:55 이후에 시작될 수 있다.

모든 창구는 00:00 이전에는 열지 않고 23:00 이후에는 닫지 않는다. 창구의 업무 종료 시각까지 남은 시간이 처리에 필요한 시간보다 짧으면 그 창구는 방문객을 처리하지 않는다.

사람이 여권을 받을 수 있는지, 받을 수 있다면 여권을 받고 통합 센터를 떠날 수 있는 가장 이른 시각이 언제인지 구해야 한다.

입력

첫째 줄에는 사람이 통합 센터에 도착할 계획인 시각이 hh:mm 형식으로 주어진다. 둘째 줄에는 돌아야 하는 창구의 수 n이 정수로 주어진다 (1 ≤ n ≤ 100).

다음 n개 줄에는 돌아야 하는 순서대로 모든 창구의 운영 정보가 주어진다. i번 창구를 설명하는 줄에는 그 창구의 개점 시각이 hh:mm 형식으로, 이어서 같은 형식의 폐점 시각이, 이어서 그 창구에서 방문객을 처리하는 데 걸리는 시간 ti가 정수 분 단위로 주어진다 (1 ≤ ti ≤ 1440). 각 창구의 폐점 시각은 개점 시각보다 엄격히 크다.

출력

사람이 여권을 받을 수 있으면 첫째 줄에 Yes를, 둘째 줄에 그가 여권을 받고 통합 센터를 떠날 수 있는 시각을 hh:mm 형식으로 출력한다. 그렇지 않으면 첫째 줄에 No를 출력한다.

예제1

  1. 예제 1

    입력
    08:00
    2
    09:05 11:05 30
    09:00 10:20 45
    
    예상 출력
    Yes
    10:20