代码如下:
#include<bits/stdc++.h>
using namespace std;
int f[12][12];
int t[12][12];
int H[12][12];
bool ps(int n)
{
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(H[i][j]!=t[i][j]) return false;
return true;
}
bool ps2(int n)
{
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(f[i][j]!=t[i][j]) return false;
return true;
}
bool c1(int n)
{
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) H[i][j]=f[j][n-i+1];
return ps(n);
}
bool c2(int n)
{
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) H[i][j]=f[n-i+1][n-j+1];
return ps(n);
}
bool c3(int n)
{
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) H[i][j]=f[j][i];
return ps(n);
}
bool c4(int n)
{
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) H[i][j]=f[i][n-j+1];
return ps(n);
}
bool c5(int n)
{
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) H[i][j]=f[i][n-j+1];
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) f[i][j]=H[i][j];
if(c1(n)||c2(n)||c3(n)) return true;
return false;
}
bool c6(int n)
{
return ps2(n);
}
int main()
{
string a;
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a;
for(int j=0;j<n;j++)
{
if(a[j]=='@') f[i][j]=1;
else f[i][j]=0;
}
}
for(int i=1;i<=n;i++)
{
cin>>a;
for(int j=0;j<n;j++)
{
if(a[j]=='@') t[i][j+1]=1;
else t[i][j+1]=0;
}
}
if(c1(n)) cout<<1;
else if(c2(n)) cout<<2;
else if(c3(n)) cout<<3;
else if(c4(n)) cout<<4;
else if(c5(n)) cout<<5;
else if(c6(n)) cout<<6;
else cout<<7;
return 0;
}