#USACO1654. 时钟

时钟

题目描述

考虑下面 9 个按照 3×33 \times 3 阵列排列的时钟:

|-------|    |-------|    |-------|    
|       |    |       |    |   |   |    
|---O   |    |---O   |    |   O   |          
|       |    |       |    |       |           
|-------|    |-------|    |-------|    
    A            B            C

|-------|    |-------|    |-------|
|       |    |       |    |       |
|   O   |    |   O   |    |   O   |
|   |   |    |   |   |    |   |   |
|-------|    |-------|    |-------|
    D            E            F

|-------|    |-------|    |-------|
|       |    |       |    |       |
|   O   |    |   O---|    |   O   |
|   |   |    |       |    |   |   |
|-------|    |-------|    |-------|
    G            H            I

我们的目标是找到一种移动次数最少的方案,使得上述九个时钟的指针都指向十二点钟位置。

下面给出了九种不同的转动指针的命令,执行一次某个命令被称作一次移动。

所有命令被编号为 191∼9,每种命令都会使得一部分时钟收到影响,如下表所示:

命令编号 受影响时钟
1 ABDE
2 ABC
3 BCEF
4 ADG
5 BDEFH
6 CFI
7 DEGH
8 GHI
9 EFHI

当我们执行某一命令时,受该命令影响的时钟的指针就会顺时针旋转 90 度。

例如,下图显示了一种将所有时钟都调至十二时的方案,矩阵中的每个数字表示一个时钟当前的指向时间。

9 9 12       9 12 12       9 12 12        12 12 12      12 12 12 
6 6 6  5 ->  9  9  9  8->  9  9  9  4 ->  12  9  9  9-> 12 12 12 
6 3 6        6  6  6       9  9  9        12  9  9      12 12 12

该方案所执行命令依次为 5,8,4,9,移动四次后所有时钟均指向十二时。

注意,这只是一种可行方案,并不是我们所求的“正确答案”(具体可参照下面格式、样例)。

输入格式

共三行,每行三个整数,每个整数表示一个时钟初始时的指针指向时间。

输入中的整数只可能是 3,6,9,12,只有这四种可能的初始时间。

输出格式

输出移动次数最少的可行方案的执行命令序列。

如果答案不唯一,则将命令序列合在一起看作一个十进制整数,输出这个整数最小的方案。

9 9 12
6 6 6
6 3 6
4 5 8 9