한양이의 새로운 시계

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

요약
각 일정은 기계가 비면 시작 가능 시각에 시작하고, 시작 시각이 빠른 것, 그다음 소요 시간이 짧은 것을 고르며, 하루를 15동물 시간으로 나눠 시뮬레이션한다. 끝낸 일정의 동물 목록과 시작·종료 시각, 못 끝낸 개수를 출력한다.
난이도

보통10점 중 6점

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

문제

조선시대는 현대와 달리 자축인묘진사오미신유술해(십이지)로 이루어진 십이시 시간 체계를 사용해 23:00부터 2시간씩 시간을 쟀다. 하지만 이럴 수가! 시간을 나타내는 동물에 한양대의 사자와 세종대의 기린 그리고 귀여운 고양이가 없는 것이다!

경악한 한양이는 십이지에 사자와 기린, 고양이를 더한 15마리로 새로운 시간 체계를 만들려고 한다. 이 시간 체계는 자정(0시)부터 동물 한 마리당 1시간 36분을 담당한다. 예를 들어 '자시(rat time)'는 0시 정각부터 1시 36분이 되기 직전까지를 의미한다.

각 동물의 영어명은 자정부터 순서대로 다음과 같다.

rat, cow, tiger, rabbit, dragon, snake, horse, sheep, monkey, chicken, dog, pig, lion, giraffe, cat

MBTI가 J인 한양이는 이 새로운 시간 체계 위에서 일정을 수행하고자 한다.


일정의 수행 규칙은 다음과 같다. 일정은 한 번에 하나만 수행할 수 있으며, 한 일정이 끝난 시각부터 다음 일정을 시작할 수 있다. 예를 들어 3시간 일정을 0시에 시작했다면 이 일정은 0시부터 3시가 되기 직전까지 진행되며, 3시 정각부터 새로운 일정을 시작할 수 있다.

각 일정에는 시작 가능 시각과 소요 시간이 정해져 있다. 시작 가능 시각이 되면 다른 일정을 수행 중이 아닌 한 즉시 일정을 시작해야 한다. 만약 시작 가능한 일정이 여러 개라면 시작 가능 시각이 가장 빠른 일정을 수행하고, 그런 일정이 여러 개라면 소요 시간이 더 짧은 일정을 수행한다. 소요 시간까지 같은 일정이 여러 개라면 그 중 아무거나 수행한다.


24시가 되면 다음날로 넘어가 버리기에 23시 59분까지 처리를 완료한 일정만 끝낸 것으로 생각한다. 각 일정의 시작, 종료 시각과 수행하지 못하는 일정이 몇 개인지 한양이를 위해 분석해 주자.

입력

첫 번째 줄에 일정의 개수를 나타내는 정수 NN이 주어진다. (1≤N≤1,000,000)(1 \le N \le 1\\,000\\,000)

이후 NN개의 줄에 걸쳐, 각 일정을 나타내는 3개의 정수 HH, MM, DD가 주어진다. 이는 이 일정의 시작 가능한 시간이 HH시 MM분이며, 소요 시간이 DD분이라는 뜻이다. (0≤H≤23;0≤M≤59;1≤D≤1440)(0 \le H \le 23; 0 \le M \le 59; 1 \le D \le 1440)

출력

23시 59분까지 마친 일정 SS와 그 일정의 개수 CC에 대해 다음과 같이 출력한다. 이때, 일정을 시작한 시각 순으로 출력한다.

각 일정 S_i(1≤i≤C)S\_i (1 \le i \le C)에 대해 2i−12i-1번째 줄에 일정이 걸친 동물을 새로운 시간 체계의 순서대로 공백으로 구분해 출력한다.

2i2i번째 줄에 해당 일정의 시작 시각과 마친 시각을 각각 HH:MM형식으로 공백으로 구분해 출력한다. (HH:MM은 띄어쓰기 없이 시간과 분 모두 두 자리로 표시하며, 한 자리 수의 경우 앞에 0을 붙인다(예: 09:05))

만일 23시 59분까지 마치지 못한 일정이 있으면, 마지막 줄에 그 일정의 개수를 출력한다.

예제2

  1. 예제 1

    입력
    8
    0 10 4
    5 20 50
    4 10 5
    8 40 90
    22 40 40
    20 30 150
    8 41 20
    23 13 50
    
    예상 출력
    rat
    00:10 00:14
    tiger
    04:10 04:15
    rabbit
    05:20 06:10
    snake horse
    08:40 10:10
    horse
    10:10 10:30
    lion giraffe cat
    20:30 23:00
    cat
    23:00 23:40
    1
    
  2. 예제 2

    입력
    4
    15 0 60
    20 0 60
    22 0 59
    22 0 60
    
    예상 출력
    chicken dog
    15:00 16:00
    lion giraffe
    20:00 21:00
    giraffe cat
    22:00 22:59
    cat
    22:59 23:59