자막

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

요약
SRT 파일의 일부를 읽어 모든 시간 값에 주어진 밀리초를 더한 뒤 같은 형식으로 다시 출력한다.
난이도

보통10점 중 4점

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

문제

외국 영화의 대사를 이해하기 위해 화면 아래에 번역된 텍스트가 표시되는데, 이를 흔히 자막이라고 부른다. 디지털 환경에서 자막은 주로 .SRT 파일에 작성되며, 이 파일은 다음과 같은 형식의 블록들로 구성된다:

[블록의 일련번호]
[자막 시작 시간 --> 자막 종료 시간]
[한 줄 이상으로 된 자막 텍스트]

이 블록들은 빈 줄 하나로 구분된다. 시간은 HH:MM:SS,TTT 형식(콜론과 쉼표에 주의)으로, 시:분:초,밀리초를 의미한다. 1초는 1000밀리초이다. 다음은 .SRT 파일의 예이다:

1
00:00:01,600 --> 00:00:04,200
Good day!

2
00:00:05,900 --> 00:00:07,999
Good day to you too!
Here you go!

3
00:00:10,000 --> 00:00:14,000
May I please have ten garlic sausages?

때로는 자막이 영화와 완전히 동기화되지 않아 2초가량 너무 일찍 또는 늦게 나타나기도 한다. 그래서 해당 .SRT 파일, 또는 그 파일의 일부분에 있는 모든 시간을 지정된 (밀리)초만큼 앞이나 뒤로 이동하려 한다. 이 작업을 수행하는 프로그램을 작성하시오.

입력

입력 데이터는 어떤 .SRT 파일의 일부분을 나타내는 최대 30개의 줄로 이루어진다.

첫 줄은 일련번호 X인 블록으로 시작하고, 그 뒤에 일련번호 X + 1, X + 2, ..., X + K인 블록들이 문제 설명에서 서술한 형식으로 이어진다.

블록들은 빈 줄 하나로 구분된다. 블록 안의 자막 텍스트는 영문 알파벳 글자와 구두점 ',.?!를 포함하는 하나 이상의 비어 있지 않은 줄로 이루어진다. 마지막 블록 다음 줄에는 관찰 대상 파일 부분의 끝을 나타내는 '#' 기호만 있으며, 이 문자는 다른 곳에 나타나지 않는다.

그다음(마지막) 줄에는 모든 자막 블록에 더해야 하는 시간이 밀리초 단위(-10 000 ≤ T ≤ 10 000)로 주어진다.

출력

입력 데이터로 주어진 .SRT 파일의 일부분을 출력하되, 시간 표시(각 블록의 시작 시간과 종료 시간)는 T밀리초만큼 증가해야 한다. 테스트 샘플에서는 요구되는 시간 표시가 음수가 되지 않도록 보장한다.

예제2

  1. 예제 1

    입력
    8
    00:00:01,600 --> 00:00:04,200
    We thought you was...
    
    9
    00:00:05,900 --> 00:00:07,999
    a toad.
    #
    300
    
    예상 출력
    8
    00:00:01,900 --> 00:00:04,500
    We thought you was...
    
    9
    00:00:06,200 --> 00:00:08,299
    a toad.
    #
    
  2. 예제 2

    입력
    624
    00:43:30,566 --> 00:43:32,108
    Howdy do, ladies?
    
    625
    00:43:32,276 --> 00:43:33,943
    Name of Pete.
    
    626
    00:43:47,124 --> 00:43:48,082
    Ain't you gonna
    introduce us, Pete?
    #
    -500
    
    예상 출력
    624
    00:43:30,066 --> 00:43:31,608
    Howdy do, ladies?
    
    625
    00:43:31,776 --> 00:43:33,443
    Name of Pete.
    
    626
    00:43:46,624 --> 00:43:47,582
    Ain't you gonna
    introduce us, Pete?
    #