| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 3 초 | 512 MB | 116 | 46 | 27 | 47.368% |
게임 개발자가 꿈인 영우는 컴퓨터게임설계 수업의 과제로 RPG 게임을 개발했다. 영우가 만든 RPG 게임은 다음의 단계들을 순차적으로 수행하며 진행된다.
영우는 이 게임을 이미 클리어했고 그 당시의 게임 진행 기록을 남겼다. 영우의 진행 기록에는 게임이 시작될 때부터 클리어 될 때까지 수행한 동전 던지기의 결과가 차례대로 나와있다. 하지만, 그 외에 다른 정보들은 깜빡하고 전혀 기록하지 않았다! 특히 이 게임에서 중요한 요소인 특수 파라미터 x, y를 어떤 값으로 정했는지도 기록하지 않았다.
영우는 디버깅을 위해 게임 진행 기록을 온전히 복원하고 싶어졌다. 이를 위해서는 영우가 게임에서 사용한 x, y의 값을 추정할 필요가 있다. 다행히도 우리는 영우가 만든 게임의 알고리즘을 알고 있기에, 이를 참고하여 x, y 값으로 가능한 것들이 무엇이 있는지 알아낼 수 있다.
영우의 게임 진행 기록을 보고 해당 게임에서 사용되었을 특수 파라미터 값 (x, y) 쌍으로 가능한 것들을 게임의 알고리즘에 근거하여 모두 찾아내보자.
첫째 줄에는 게임 시작부터 클리어까지 플레이어가 동전을 던진 횟수를 의미하는 정수 N(1 ≤ N ≤ 32,000)이 주어진다.
둘째 줄에는 게임 시작부터 클리어까지 동전을 던져서 나온 면이 공백 없이 던진 순서대로 N개 주어진다. 앞면이 나온 경우는 H, 뒷면이 나온 경우는 T로 표현한다.
첫째 줄에는 해당 게임에서 사용되었을 특수 파라미터 (x, y) 쌍으로 가능한 것의 개수 K를 출력한다.
둘째 줄부터 K개의 줄에 걸쳐서 가능한 (x, y) 쌍을 한 줄에 하나씩 출력한다. 각 줄에는 양의 정수 x와 y를 하나의 공백을 사이에 두고 출력한다.
만약 가능한 (x, y) 쌍이 여러 개라면, (x, y) 쌍들을 x의 오름차순으로 출력하되 x의 값이 동일한 쌍들 간에는 y의 오름차순으로 출력한다.
3 HHT
10 1 3 2 3 3 3 4 2 5 2 7 1 8 1 9 1 10 1 11 1
4 THHH
7 1 4 2 4 3 4 6 2 12 1 13 1 14 1