📄 2004.cpp
字号:
#include<stdio.h>
int a[1000005];
int abs(int x)
{
return x>0?x:-x;
}
int main()
{
int i,j,k,l;
int T,t;
scanf("%d",&T);
int n;
for(t=1;t<=T;t++)
{
scanf("%d",&n);
for(i=1;i<=n*n*n;i++)
{
scanf("%d",&a[i]);if(a[i]==0)a[i]=n*n*n;
}
int ans=0;
int x1,y1,z1,x2,y2,z2;
for(i=1;i<=n*n*n;i++)if(a[i]!=n*n*n)
{
z1=i-1;
x1=z1%n;z1/=n;
y1=z1%n;
z1=z1/n;
z2=a[i]-1;
x2=z2%n;z2/=n;
y2=z2%n;
z2=z2/n;
ans=(ans+x1+y1+z1-x2-y2-z2+(n<<2))&1;
}
for(i=1;i<=n*n*n;i++)
{
while(a[i]!=i)
{
j=a[i];
int t=a[i];a[i]=a[j];a[j]=t;
ans++;
}
}
if(ans&1)printf("Puzzle is unsolvable.\n");
else
printf("Puzzle can be solved.\n");
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -