러닝머신

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

문제

You'reFat 러닝머신 회사는 사용자가 오디오 프로그램(온라인 스트리밍 오디오 또는 CD)에 맞춰 운동 프로그램을 실행할 수 있도록 러닝머신을 개선하기로 했다. 이 프로그램에는 경쾌한 음악과 강사의 응원이 담긴다. 오디오 프로그램에는 속도와 경사의 변경을 알리는 칩(chirp)을 삽입할 수 있다. 예를 들어 러닝머신의 속도를 높여야 할 때가 되면, 러닝머신이 칩에서 새 속도를 읽어 들이는 동안 음악이 잠시 멈췄다가 다시 재생된다. 러닝머신은 0부터 7마일/시의 속도와 0부터 7도의 경사를 지원한다.

한 프로그램은 샘플의 나열이다. 각 샘플은 0(최솟값)부터 9(최댓값)까지의 값을 가진다. 1초에 샘플이 3개씩 들어간다. 각 칩은 비트의 나열이다. 비트 0은 각각 4 또는 5인 샘플 두 개로 이루어진다. 비트 1은 샘플 두 개로 이루어지며, 첫 번째는 0 또는 1, 두 번째는 8 또는 9이다. 칩은 비트 "01"로 시작한다. 이어지는 세 비트는 새 속도를 나타내며, 최하위 비트부터 온다. 그다음 세 비트는 새 경사를 나타내며, 이 역시 최하위 비트부터 온다. 속도나 경사 중 하나가 바뀌지 않더라도 모든 칩에는 속도와 경사가 모두 포함된다는 점에 유의하라. 속도 3마일/시, 경사 6도를 나타내는 칩은 다음과 같다:

샘플5519191945540918
비트01110011
의미시작 비트속도: 3 mph경사: 6도

입력

입력은 하나 이상의 프로그램으로 이루어진다. 각 프로그램에는 1부터 시작하는 번호가 암묵적으로 매겨진다. 첫 줄에는 뒤따르는 프로그램의 개수인 정수 n이 하나 주어진다. 각 프로그램은 샘플의 나열이다. 프로그램의 각 줄에는 정확히 30개의 샘플이 있으며, 마지막 줄만 그보다 적을 수 있다. 각 프로그램의 끝은 값이 10인 샘플로 표시된다.

다음에 유의하라.

  • 배경 음악의 샘플은 0부터 9까지 어떤 값이든 될 수 있지만, 칩의 시작 비트 나열 "01"(중간, 중간, 낮음, 높음)은 배경 음악에서는 나타나지 않는다.
  • 칩은 시간을 소비한다.
  • 각 운동은 60분 미만이다.
  • 속도가 0인 칩이 운동의 끝을 뜻하지는 않는다.
  • 칩 앞에는 값이 4 또는 5인 샘플이 하나 이상 올 수 있다.
  • 칩이 반드시 정수 초 경계에서 시작하는 것은 아니다.
  • 각 칩은 올바른 형식이다(정상적인 0 또는 1 비트만 나타난다).

출력

각 오디오 프로그램에 대해 먼저 "Program n" 줄을 출력한다. 여기서 n은 프로그램 번호이다. 그다음 그 오디오 프로그램에 있는 각 칩의 시간, 속도, 경사를 출력한다. 각 칩은 "mm:ss Speed S Inclination I" 형식으로 한 줄을 출력한다. 분과 초는 모두 앞자리를 0으로 채워("00"부터 "59"까지) 출력한다. 칩의 시간은 시작 비트의 첫 샘플이 놓인 시각이며, 1초 미만의 소수 부분은 버린다. 속도 S와 경사 I는 모두 한 자리 십진수로 출력한다. 출력의 각 항목 사이에는 공백이 하나씩 있어야 한다.