#include<fstream>
#include<iostream>
using namespace std;
int main()
{
int i,j,k=0,a[10],b[10];
ifstream fin ("clocks.in");
ofstream fout ("clocks.out");
int move[10][10]={
{0,0,0,0,0,0,0,0,0,0},
{0,3,3,0,3,3,0,0,0,0},
{0,3,3,3,0,0,0,0,0,0},
{0,0,3,3,0,3,3,0,0,0},
{0,3,0,0,3,0,0,3,0,0},
{0,0,3,0,3,3,3,0,3,0},
{0,0,0,3,0,0,3,0,0,3},
{0,0,0,0,3,3,0,3,3,0},
{0,0,0,0,0,0,0,3,3,3},
{0,0,0,0,0,3,3,0,3,3}
};//九个步骤对九个时钟产生的影响
int m[10];//保存使用九个步骤的次数,每步最多使用3次
int clock[10];//保存原始的时钟状态
int temp[10];//保存临时的时钟状态
for(i=1;i<=9;i++)
fin>>clock[i];
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]++)
for(m[9]=0;m[9]<=3;m[9]++)
{
for(i=1;i<=9;i++)//对于每个时钟,表示第i个时钟
{
temp[i]=clock[i];
for(j=1;j<=9;j++)//相对于每个步骤产生的影响,表示第j个步骤
{
if(move[j][i]==3)
{
temp[i]=temp[i]+m[j]*3;
}
}
temp[i]%=12;
}
for(i=1;i<=9;i++)
{
if(temp[i]!=0)
break;
}
if(i>9)//i表示时钟
{
for(j=1;j<=9;j++)//j表示步骤
{
if(m[j]!=0)
{
a[++k]=m[j];//第j个步骤用了m[j]次
b[k]=j;//用了第j个步骤
}
}
// fout<<k<<endl;
//共用了k个步骤
for(i=1;i<k;i++)
{
for(j=1;j<=a[i];j++)
fout<<b[i]<<" ";
}
for(j=1;j<a[k];j++)
fout<<b[i]<<" ";
fout<<b[i]<<endl;
}
k=0;
}
return 0;
}
the clocks 菜鸟做了两天....
最新推荐文章于 2024-02-22 21:28:29 发布