Good Game
시간 제한1초메모리 제한1024 MB
A와 B 블록으로 이루어진 문자열에서 같은 문자가 인접한 2개 또는 3개를 차례로 제거해 모두 없앨 수 있으면 각 제거 위치를, 불가능하면 -1을 출력합니다.
문제
Finn is playing a game of Twos and Threes. Twos and Threes is a one-player game played on a one-dimensional board. In the starting position, there are blocks arranged in a row, with each block labelled either or . Blocks are numbered from to from left to right. Finn is allowed to make moves of the following form:
- Select or consecutive blocks that share the same label. Remove them from the board. Connect any remaining blocks together. Re-index the blocks from left to right, starting with index .
Finn wins the game if all blocks are removed from the board. Your task is to help Finn determine a winning sequence of moves, or determine if the game cannot be won.
입력
The first line of input will contain the integer .
The second line of input will contain the string , which is the starting position of the game.
There are characters in , and each of these characters in is either A or B.
출력
If there is a winning sequence of moves, output , the number of moves in the winning sequence. On each of the next lines, print an index , followed by one space, followed by a number , denoting a move that will remove the blocks currently at indices to , inclusive.
If there is no winning sequence of moves, output -1.
If there are multiple winning sequences, then any winning sequence will be accepted. There is no need to minimize or maximize .
힌트
The sample output denotes this winning sequence:
\displaystyle \begin{align\*} & ABAAB\underline{BB}AA \\\ & AB\underline{AA}BAA \\\ & A\underline{BB}AA \\\ & \underline{AAA} \end{align\*}