CCO '22 P6 - Good Game
View as PDFCanadian Computing Olympiad: 2022 Day 2, Problem 3
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.
Input Specification
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.
| Marks Awarded | Bounds on  | 
|---|---|
Output Specification
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 .
Sample Input
9
ABAABBBAA
Possible Output for Sample Input
4
6 2
3 2
2 2
1 3
Explanation of Output for Sample Input
The sample output denotes this winning sequence:
Comments