Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 3980 | Accepted: 1434 |
Description
Input
Your program is to read from standard input. Nine numbers give the start positions of the dials. 0=12 o'clock, 1=3 o'clock, 2=6 o'clock, 3=9 o'clock.
Output
Your program is to write to standard output. Output a shortest sorted sequence of moves (numbers), which returns all the dials to 12 o'clock. You are convinced that the answer is unique.
Sample Input
Sample Output
Source
IOI 1994
*********************************************************************************
**************************************************************************************
# include <iostream.h> int move[9][9]={ //A,B,C,D,E,F,G,H,I {1,1,0,1,1,0,0,0,0},//move1 {1,1,1,0,0,0,0,0,0},//move2 {0,1,1,0,1,1,0,0,0},//move3 {1,0,0,1,0,0,1,0,0},//move4 {0,1,0,1,1,1,0,1,0},//move5 {0,0,1,0,0,1,0,0,1},//move6 {0,0,0,1,1,0,1,1,0},//move7 {0,0,0,0,0,0,1,1,1},//move8 {0,0,0,0,1,1,0,1,1} //move9 }; int clock[9];//original int temp[9];//for try int m[9];//record the times of each move void LoadClock(); void Move(); bool Check(); void Output(); void main(){ LoadClock(); for (m[0]=0;m[0]<=3;m[0]++) for (m[1]=0;m[1]<=3;m[1]++) for (m[2]=0;m[2]<=3;m[2]++) for (m[3]=0;m[3]<=3;m[3]++) for (m[4]=0;m[4]<=3;m[4]++) for (m[5]=0;m[5]<=3;m[5]++) for (m[6]=0;m[6]<=3;m[6]++) for (m[7]=0;m[7]<=3;m[7]++) for (m[8]=0;m[8]<=3;m[8]++) { Move(); if (Check()==true){ Output(); break; } } } void LoadClock(){ int i; for (i=0;i<9;i++) cin>>clock[i]; } void Move(){ int i,j; for (i=0;i<9;i++){ temp[i]=clock[i]; for (j=0;j<9;j++) if(move[j][i]) temp[i] += m[j]; temp[i] %= 4; } } bool Check(){ int i; for (i=0;i<9;i++) if (temp[i]!=0) return false; return true; } void Output(){ int i,j; for (i=0;i<9;i++){ if (m[i]>0) for (j=0;j<m[i];j++) cout<<i+1<<' '; } cout<<endl; }
4 5 8 9
3 3 0 2 2 2 2 1 2
|-------| |-------| |-------|
| | | | | | |
|---O | |---O | | O |
| | | | | |
|-------| |-------| |-------|
A B C
|-------| |-------| |-------|
| | | | | |
| O | | O | | O |
| | | | | | | | |
|-------| |-------| |-------|
D E F
|-------| |-------| |-------|
| | | | | |
| O | | O---| | O |
| | | | | | | |
|-------| |-------| |-------|
G H I
(Figure 1)
Move Affected clocks
1 ABDE
2 ABC
3 BCEF
4 ADG
5 BDEFH
6 CFI
7 DEGH
8 GHI
9 EFHI
(Figure 2)