시간 변경
시간 제한2초메모리 제한1024 MB
현재 날짜와 다음 날짜의 서머타임 시계 변경을 처리하면서, k분 동안 시계를 한 분씩 진행시켜 각 시각을 hh:mm 형식으로 출력한다.
문제
전력을 아끼기 위해 많은 나라가 서머타임으로의 전환을 시행한다. 시간 변경은 1년에 두 번, 봄과 가을에 이루어진다. 봄에는 서머타임이 시작되어 시계가 1시간 앞으로 간다. 가을에는 서머타임이 끝나 시계가 1시간 뒤로 간다.
시간 변경은 밤에 이루어진다. 서머타임이 시작될 때에는 01:59에서 1분 뒤에 곧바로 03:00이 된다. 서머타임이 끝날 때에는 02:00부터 02:59까지의 한 시간이 두 번 반복된다. 즉, 변경이 있는 날에는 02:59 다음에 처음으로 03:00이 되어야 할 때 대신 다시 02:00이 된다.
새 운영체제 Mocrosoft Widows 2006의 개발자 중 한 명으로서, 시스템 시계를 서머타임으로, 그리고 다시 원래대로 자동 전환하는 운영체제 커널의 일부를 작성하라는 임무를 받았다.
초기 시각과 당일 및 다음 날의 시간 변경 정보가 주어졌을 때, 프로그램은 주어진 분 수만큼의 시계 표시를 출력해야 한다.
입력
입력의 첫째 줄에는 정수 이 주어진다. 이는 당일의 시작부터 출력해야 할 첫 시각까지 지난 분 수이다. 은 0 이상이고 당일의 분 수보다 엄격히 작음이 보장된다.
둘째 줄에는 두 정수 과 가 주어지며, 당일과 다음 날에 어떤 시간 변경이 이루어지는지를 나타낸다. 값 은 서머타임이 시작됨을, 은 서머타임이 끝남을, 은 시간 변경이 이루어지지 않음을 뜻한다.
셋째 줄에는 수 가 주어진다. 이는 프로그램이 출력해야 하는 시계 표시의 개수이다 ().
출력
출력은 개의 줄로 이루어져야 하며, 번째 줄에는 초기 시각에서 분 뒤의 시계 표시를 출력해야 한다. 시각은 hh:mm 형식으로 출력한다.