러닝머신
시간 제한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도를 나타내는 칩은 다음과 같다:
입력
입력은 하나 이상의 프로그램으로 이루어진다. 각 프로그램에는 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는 모두 한 자리 십진수로 출력한다. 출력의 각 항목 사이에는 공백이 하나씩 있어야 한다.