求助,有两个点WA。
#include<bits/stdc++.h>
using namespace std;
char a[15][15],b[15][15],ans[15][15],pre[15][15];int n;
bool pd1()
{
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
b[j][n-i+1]=a[i][j];
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
if(b[i][j]!=ans[i][j])
return false;
return true;
}
bool pd2()
{
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
b[n-i+1][n-j+1]=a[i][j];
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
if(b[i][j]!=ans[i][j])
return false;
return true;
}
bool pd3()
{
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
b[n-j+1][i]=a[i][j];
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
if(b[i][j]!=ans[i][j])
return false;
return true;
}
bool pd4()
{
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
b[i][n-j+1]=a[i][j];
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
if(b[i][j]!=ans[i][j])
return false;
return true;
}
bool pd5()
{
pd4();
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
a[i][j]=pre[i][j];
if(pd1())return true;
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
a[i][j]=pre[i][j];
if(pd2())return true;
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
a[i][j]=pre[i][j];
if(pd3())return true;
}
bool pd6()
{
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
if(b[i][j]!=ans[i][j])
return false;
return true;
}
void mian()
{
if(pd1())
{
cout<<1;return;
}
if(pd2())
{
cout<<2;return;
}
if(pd3())
{
cout<<3;return;
}
if(pd4())
{
cout<<4;return;
}
if(pd5())
{
cout<<5;return;
}
if(pd6())
{
cout<<6;return;
}
cout<<7;
}
int main()
{
cin>>n;
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
{
cin>>a[i][j];
pre[i][j]=a[i][j];
}
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
cin>>ans[i][j];
mian();
}