IOI '94 - Haninge, Sweden
+-------+ +-------+ +-------+
| | | | | | |
|---O | |---O | | O |
| | | | | |
+-------+ +-------+ +-------+
A B C
+-------+ +-------+ +-------+
| | | | | |
| O | | O | | O |
| | | | | | | | |
+-------+ +-------+ +-------+
D E F
+-------+ +-------+ +-------+
| | | | | |
| O | | O---| | O |
| | | | | | | |
+-------+ +-------+ +-------+ (Figure 1)
G H I
There are nine clocks in a array (figure 1). The goal is to return all the dials to o'clock with as few moves as possible. There are nine different allowed ways to turn the dials on the clocks. Each such way is called a move. Select for each move a number to . That number will turn the dials degrees clockwise on those clocks which are affected according to figure 2 below.
Move Affected clocks
1 ABDE
2 ABC
3 BCEF
4 ADG
5 BDEFH
6 CFI
7 DEGH
8 GHI
9 EFHI (Figure 2)
Input Specification
The input gives nine numbers. These numbers give the start positions of the dials. represents o'clock, represents o'clock, represents o'clock, and represents o'clock. The example in figure 1 gives the following input data file:
3 3 0
2 2 2
2 1 2
Output Specification
The output should be the shortest sequence of moves (numbers), which returns all the dials to o'clock. In case there are many solutions, only one is required. There is at least one solution.
Sample Input
3 3 0
2 2 2
2 1 2
Sample Output
4 5 8 9
Explanation
Each number represents a time according to the following table:
0 = 12 o'clock
1 = 3 o'clock
2 = 6 o'clock
3 = 9 o'clock
3 3 0 3 0 0 3 0 0 0 0 0 0 0 0
2 2 2 5-> 3 3 3 8-> 3 3 3 4-> 0 3 3 9-> 0 0 0
2 1 2 2 2 2 3 3 3 0 3 3 0 0 0
Comments