#include<bits/stdc++.h>
using namespace std;
int a[60][60];
int n,b[60][60];
int main()
{
int i,j,n;
while(cin>>n)
{
int t=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>a[i][j];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>b[i][j];
for( i=0;i<n;i++)
for( j=0;j<n;j++)
{
if(b[i][j]!=a[i][j])//a转0度或者转90度
break;
}
if(i==n&&j==n)
{
cout<<"YES"<<endl;
continue;
}
for( i=0;i<n;i++)
for( j=0;j<n;j++)
{
if(b[i][j]!=a[n-1-j][i])//a转90度
break;
}
if(i==n&&j==n)
{
cout<<"YES"<<endl;
continue;
}
for( i=0;i<n;i++)
for( j=0;j<n;j++)
{
if(b[i][j]!=a[n-i-1][n-j-1])//a转180度
break;
}
if(i==n&&j==n)
{
cout<<"YES"<<endl;
continue;
}
for( i=0;i<n;i++)
for( j=0;j<n;j++)
{
if(b[i][j]!=a[j][n-i-1])//a转270度
break;
}
if(i==n&&j==n)
{
cout<<"YES"<<endl;
continue;
}
cout<<"NO"<<endl;
}
return 0;
}
刚开始做的时候只考虑了旋转九十度 而且判断相等的代码很冗长很繁琐 后来茅塞顿开 发现不用定义四五个数组也可以 直接旋转就行了。