#P17. USACO1.4.2 时钟

USACO1.4.2 时钟

问题描述

考虑将如此安排在一个 3 x3 行列中的九个时钟:

|-------|    |-------|    |-------|    
|       |    |       |    |   |   |    
|---O   |    |---O   |    |   O   |          
|       |    |       |    |       |           
|-------|    |-------|    |-------|    
    A            B            C  
  
|-------|    |-------|    |-------|
|       |    |       |    |       |
|   O   |    |   O   |    |   O   |
|   |   |    |   |   |    |   |   |
|-------|    |-------|    |-------|
    D            E            F  
  
|-------|    |-------|    |-------|
|       |    |       |    |       |
|   O   |    |   O---|    |   O   |
|   |   |    |       |    |   |   |
|-------|    |-------|    |-------|
    G            H            I

目标要找一个最小的移动顺序次将所有的指针指向12点。

下面原表格列出了9种不同的旋转指针的方法,每一种方法都叫一次移动。

选择1到9号移动方法,将会使在表格中对应的时钟的指针顺时针旋转90度。

移动方法 受影响的时钟
1 ABDE
2 ABC
3 BCEF
4 ADG
5 BDEFH
6 CFI
7 DEGH
8 GHI
9 EFHI

Example Each number represents a time accoring to following table:

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

[但这可能不是正确的方法,请看下面]

程序名: clocks

输入格式

第1-3行: 三个空格分开的数字,每个数字表示一个时钟的初始时间,3,6,9,12。

数字的含意和上面第一个例子一样。

样例输入

9 9 12  
6 6 6  
6 3 6

输出格式

单独的一行包括一个用空格分开的将所有指针指向12:00的最短移动顺序的列表。

如果有多种方案,输出那种使的连接起来数字最小的方案。(举例来说5 2 4 6 < 9 3 1 1)。

样例输出

4 5 8 9