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

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

시간 변경

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

요약
현재 날짜와 다음 날짜의 서머타임 시계 변경을 처리하면서, k분 동안 시계를 한 분씩 진행시켜 각 시각을 hh:mm 형식으로 출력한다.
난이도

보통10점 중 4점

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

문제

전력을 아끼기 위해 많은 나라가 서머타임으로의 전환을 시행한다. 시간 변경은 1년에 두 번, 봄과 가을에 이루어진다. 봄에는 서머타임이 시작되어 시계가 1시간 앞으로 간다. 가을에는 서머타임이 끝나 시계가 1시간 뒤로 간다.

시간 변경은 밤에 이루어진다. 서머타임이 시작될 때에는 01:59에서 1분 뒤에 곧바로 03:00이 된다. 서머타임이 끝날 때에는 02:00부터 02:59까지의 한 시간이 두 번 반복된다. 즉, 변경이 있는 날에는 02:59 다음에 처음으로 03:00이 되어야 할 때 대신 다시 02:00이 된다.

새 운영체제 Mocrosoft Widows 2006의 개발자 중 한 명으로서, 시스템 시계를 서머타임으로, 그리고 다시 원래대로 자동 전환하는 운영체제 커널의 일부를 작성하라는 임무를 받았다.

초기 시각과 당일 및 다음 날의 시간 변경 정보가 주어졌을 때, 프로그램은 주어진 분 수만큼의 시계 표시를 출력해야 한다.

입력

입력의 첫째 줄에는 정수 mm이 주어진다. 이는 당일의 시작부터 출력해야 할 첫 시각까지 지난 분 수이다. mm은 0 이상이고 당일의 분 수보다 엄격히 작음이 보장된다.

둘째 줄에는 두 정수 d1d_1과 d2d_2가 주어지며, 당일과 다음 날에 어떤 시간 변경이 이루어지는지를 나타낸다. 값 11은 서머타임이 시작됨을, −1-1은 서머타임이 끝남을, 00은 시간 변경이 이루어지지 않음을 뜻한다.

셋째 줄에는 수 kk가 주어진다. 이는 프로그램이 출력해야 하는 시계 표시의 개수이다 (1≤k≤6001 \le k \le 600).

출력

출력은 kk개의 줄로 이루어져야 하며, ii번째 줄에는 초기 시각에서 (i−1)(i-1)분 뒤의 시계 표시를 출력해야 한다. 시각은 hh:mm 형식으로 출력한다.

예제4

  1. 예제 1

    입력
    118
    1 0
    4
    
    예상 출력
    01:58
    01:59
    03:00
    03:01
    
  2. 예제 2

    입력
    190
    -1 1
    1
    
    예상 출력
    02:10
    
  3. 예제 3

    입력
    0
    -1 0
    3
    
    예상 출력
    00:00
    00:01
    00:02
    
  4. 예제 4

    입력
    1438
    0 1
    4
    
    예상 출력
    23:58
    23:59
    00:00
    00:01