#include<bits/stdc++.h>
using namespace std;
int main()
{
char a[11][11],b[11][11];
int sum=0,sum2=0,sum3=0,n;
cin>>n;
for(char i=1;i<=n;i++)
for(char j=1;j<=n;j++)
cin>>a[i][j];
for(char i=1;i<=n;i++)
for(char j=1;j<=n;j++)
{
cin>>b[i][j]; //输入数组
if(b[i][j]==a[i][j]) sum++;
}
if(sum==n*n) cout<<4<<endl;
if(sum!=n*n)
{
sum=0;
for(char h=1;h<=n;h++)
for(char k=n;k>=1;k--)
{
if(b[h][n+1-k]==a[k][h]) sum++; //顺时针旋转 |
if(b[h][n+1-k]==a[n+1-k][n+1-h]) sum2++; //逆时针旋转 | 并记录相同数
if(b[h][k]==a[n+1-h][n+1-k]) sum3++; //关于中心对称 |
}
if(sum==n*n) cout<<1<<endl;
else
{
if(sum2==n*n) cout<<2<<endl;
else
{
if(sum3==n*n) cout<<3<<endl; //sum满足那种方式,就输出相应的值
else cout<<5<<endl; //无满足,则输出5
}
}
}
return 0;
}
wrong
#include<bits/stdc++.h>
using namespace std;
int main()
{
char a[11][11],b[11][11],c[11][11];
int sum=0,n;
cin>>n;
for(char i=1;i<=n;i++)
for(char j=1;j<=n;j++)
cin>>a[i][j];
for(char i=1;i<=n;i++)
for(char j=1;j<=n;j++)
{
cin>>b[i][j];
if(a[i][j]==b[i][j]) sum++;
}
if(sum!=0) cout<<4<<endl;
if(sum==0)
{
for(char h=1;h<=n;h++)
for(char k=n;k>=1;k--)
{
c[k][h]=a[h][k];
if(b[k][h]==c[k][h]) sum++;
}
if(sum!=0) cout<<1<<endl;
if(sum==0)
{
for(char h=1;h<=n;h++)
for(char k=n;k>=1;k--)
{
c[h][k]=a[k][h];
if(c[h][k]==b[h][k]) sum++;
}
if(sum!=0) cout<<2<<endl;
if(sum==0)
{
for(char h=1;h<=n;h++)
for(char k=1;k<=n;k++)
{
c[n+1-h][n+1-k]=a[h][k];
if(c[n+1-h][n+1-k]==b[n+1-h][n+1-k]) sum++;
}
if(sum!=0) cout<<3<<endl;
if(sum==0) cout<<5<<endl;
}
}
}