시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
당신은 전 세계에 고객을 둔 사업가입니다. 하루 동안 당신은 각 시간대(당신이 있는 시간대를 포함)로부터 정확히 한 통씩 메시지를 받습니다. 각 메시지에는 보낸 시간대의 현지 시각이 적혀 있습니다(메시지는 즉시 전달됩니다). 하지만 오류 때문에 현지 시각만 주어질 뿐, 그 메시지가 어느 시간대에서 왔는지는 표시되어 있지 않습니다.
당신의 임무는 각 메시지가 어느 시간대에서 왔는지 알아내는 것입니다.
이 문제에서 하루의 시간 수 n은 5 이상 60 이하입니다. 시간대의 개수는 하루의 시간 수와 같으며, 각 시간대는 정수 시간만큼의 시차를 가집니다.
시간대는 0부터 n − 1까지 번호가 매겨집니다. 당신은 시차가 없는 0번 시간대(당신의 기준 시간대)에서 살며 메시지를 받습니다. 시간대는 서쪽으로 갈수록 번호가 커집니다. 즉, 시간대 z의 현지 시각에 z시간을 더하면 당신의 시간대의 시각이 됩니다. (이는 일반적인 표기 방식이 아닙니다. 보통은 2번 시간대를 "-2:00"으로 나타냅니다.)
예를 들어, 2번 시간대의 현지 시각이 03:15이면 당신의 시간대에서는 05:15입니다.
메시지는 하루 중 언제든지(즉 0:00부터 (n − 1):59 사이에) 도착할 수 있으며, 어떤 두 메시지도 동시에 도착하지 않습니다. 날짜변경선은 0번 시간대와 마지막 시간대 사이에 있으므로 무시할 수 있습니다.
첫째 줄에는 하루의 시간 수 n (5 ≤ n ≤ 60)이 주어집니다. 이 값은 시간대의 개수이자 당신이 받은 메시지의 개수이기도 합니다.
다음 n개의 줄에는 각 메시지의 현지 발신 시각이 hhmm 형식(시 2자리, 분 2자리, 0 ≤ hh ≤ n − 1, 0 ≤ mm ≤ 59)으로 주어집니다. 이 줄들은 메시지가 도착한 순서대로 주어집니다. 즉, 가장 먼저 도착한 메시지가 첫 번째 줄에 있습니다.
입력에는 항상 정확히 하나의 정답이 존재함이 보장됩니다.
한 줄에 n개의 정수를 출력합니다. 각 정수는 0부터 n − 1 사이의 값으로, 해당 메시지가 발신된 시간대를 나타냅니다. 첫 번째 정수는 입력의 첫 번째 시각에 대응하며, 그 다음도 마찬가지입니다. 정수들은 공백 하나로 구분합니다.
n = 5인 예제를 생각해 봅시다. 현지 시각이 04:00인 메시지는 반드시 0번 시간대에서 와야 합니다. 그렇지 않으면 도착 시각이 4:59(5시간짜리 하루의 마지막 분)보다 늦어지기 때문입니다.