📄 2811.cpp
字号:
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int m,yuan[5][6],a;
cin>>m;
a=m;
while(m--)
{
int gai[5][6]={0},zhuangtai[5][6];
int i,j,tag=0,t,k;
for(i=0;i<=4;i++)
for(j=0;j<=5;j++)
cin>>yuan[i][j];
gai[0][0]=-1;
for(i=0;i<64;i++)
{
for(k=0;k<=4;k++)
for(j=0;j<=5;j++)
zhuangtai[k][j]=yuan[k][j];
gai[0][0]+=1;
tag=gai[0][0]/2;
gai[0][0]%=2;
t=1;
while(tag!=0)
{
gai[0][t]+=tag;
tag=gai[0][t]/2;
gai[0][t]%=2;
t++;
}
for(k=0;k<=5;k++)
if(gai[0][k]==1&&k==0)
{
zhuangtai[0][k]=abs(zhuangtai[0][k]-1);
zhuangtai[0][k+1]=abs(zhuangtai[0][k+1]-1);
zhuangtai[1][k]=abs(zhuangtai[1][k]-1);
}
else if(gai[0][k]==1&&k==5)
{
zhuangtai[0][k]=abs(zhuangtai[0][k]-1);
zhuangtai[0][k-1]=abs(zhuangtai[0][k-1]-1);
zhuangtai[1][k]=abs(zhuangtai[1][k]-1);
}
else if(gai[0][k]==1)
{
zhuangtai[0][k]=abs(zhuangtai[0][k]-1);
zhuangtai[0][k+1]=abs(zhuangtai[0][k+1]-1);
zhuangtai[0][k-1]=abs(zhuangtai[0][k-1]-1);
zhuangtai[1][k]=abs(zhuangtai[1][k]-1);
}
for(j=1;j<=3;j++)
{
for(k=0;k<=5;k++)
{gai[j][k]=zhuangtai[j-1][k];if(zhuangtai[j-1][k]==1) zhuangtai[j-1][k]=0;}
for(k=0;k<=5;k++)
if(gai[j][k]==1&&k==0)
{
zhuangtai[j][k]=abs(zhuangtai[j][k]-1);
zhuangtai[j][k+1]=abs(zhuangtai[j][k+1]-1);
zhuangtai[j+1][k]=abs(zhuangtai[j+1][k]-1);
}
else if(gai[j][k]==1&&k==5)
{
zhuangtai[j][k]=abs(zhuangtai[j][k]-1);
zhuangtai[j][k-1]=abs(zhuangtai[j][k-1]-1);
zhuangtai[j+1][k]=abs(zhuangtai[j+1][k]-1);
}
else if(gai[j][k]==1)
{
zhuangtai[j][k]=abs(zhuangtai[j][k]-1);
zhuangtai[j][k+1]=abs(zhuangtai[j][k+1]-1);
zhuangtai[j][k-1]=abs(zhuangtai[j][k-1]-1);
zhuangtai[j+1][k]=abs(zhuangtai[j+1][k]-1);
}
}
for(k=0;k<=5;k++)
{ gai[4][k]=zhuangtai[3][k];if(zhuangtai[3][k]==1) zhuangtai[3][k]=0;}
for(k=0;k<=5;k++)
if(gai[4][k]==1&&k==0)
{
zhuangtai[4][k]=abs(zhuangtai[4][k]-1);
zhuangtai[4][k+1]=abs(zhuangtai[4][k+1]-1);
}
else if(gai[4][k]==1&&k==5)
{
zhuangtai[4][k]=abs(zhuangtai[4][k]-1);
zhuangtai[4][k-1]=abs(zhuangtai[4][k-1]-1);
}
else if(gai[j][k]==1)
{
zhuangtai[4][k]=abs(zhuangtai[4][k]-1);
zhuangtai[4][k+1]=abs(zhuangtai[4][k+1]-1);
zhuangtai[4][k-1]=abs(zhuangtai[4][k-1]-1);
}
for(k=0;k<=5;k++)
if(zhuangtai[4][k]!=0) break;
if(k==6)
{
cout<<"PUZZLE #"<<a-m<<endl;
for(j=0;j<=4;j++)
{
for(k=0;k<5;k++) cout<<gai[j][k]<<" ";
cout<<gai[j][k]<<endl;
}
break;
}
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -