旋转90°
1.将正方形沿主对角线交换
2.将正方形沿中间垂直线交换(自身镜像)
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
typedef vector<string> VS;
int n;
void mirror(VS& a)
{
for(int k=0;k<n;k++)
for(int i=0,j=n-1;i<j;i++,j--)
swap(a[k][i],a[k][j]);
}
void rotate(VS& a)
{
for(int i=0;i<n;i++)
for(int j=0;j<i;j++)
swap(a[i][j],a[j][i]);
mirror(a);
}
int check(VS& a,VS& b)
{
VS c=a;
for(int i=1;i<=3;i++)
{
rotate(c);
if(c==b)return i;
}
c=a;
mirror(c);
if(c==b)return 4;
for(int i=1;i<=3;i++)
{
rotate(c);
if(c==b)return 5;
}
if(a==b)return 6;
return 7;
}
int main()
{
VS a,b;
string line;
cin>>n;
for(int i=0;i<n;i++)cin>>line,a.push_back(line);
for(int i=0;i<n;i++)cin>>line,b.push_back(line);
cout<<check(a,b)<<endl;
return 0;
}