Input
有多组输入。
每组输入先输入一个整数N(N <= 50),代表矩阵的大小。
接下来的N行,每行有N个整数。代表矩阵A。
再接下来的N行N个整数代表矩阵B。
Output
如果矩阵A在旋转一定角度后能和矩阵B完全一样则输出YES,否则输出NO。
Sample Input
2 1 2 3 4 3 1 4 2 2 1 2 3 4 4 2 3 1
Sample Output
YES NO
参考代码
#include<stdio.h>
int main()
{
int n,i,j,t,p,q,v;
t=p=q=v=0;
int a[50][50],b[50][50],c[50][50],d[50][50],e[50][50];
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&b[i][j]);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
c[i][j]=a[n-j-1][i];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
d[i][j]=a[n-i-1][n-j-1];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
e[i][j]=a[j][n-1-i];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(c[i][j]!=b[i][j])
t=1;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(d[i][j]!=b[i][j])
p=1;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(e[i][j]!=b[i][j])
q=1;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(a[i][j]!=b[i][j])
v=1;
if(t==0||q==0||p==0||v==0)
printf("YES\n");
else
printf("NO\n");
t=q=p=v=0;
}
return 0;
}