提示WA后,我把第二个数据下载了下来,自己运行之后,发现我的结果和官方给的结果一样,为什么说我错了呢?
提示WA后,我把第二个数据下载了下来,自己运行之后,发现我的结果和官方给的结果一样,为什么说我错了呢?
收起
#include<cstdio>
#include<cstring>
#define r(i,a,b) for(register int i=a;i<=b;i++)
using namespace std;char c[11][11],mb[11][11],tmp[11][11];int n;
inline bool change1(){r(i,1,n)r(j,1,n)if(mb[j][n-i+1]!=c[i][j]) return false;return true;}
inline bool change2(){r(i,1,n)r(j,1,n)if(mb[n-i+1][n-j+1]!=c[i][j]) return false;return true;}
inline bool change3(){r(i,1,n)r(j,1,n)if(mb[n-j+1][i]!=c[i][j]) return false;return true;}
inline bool change4(){r(i,1,n)r(j,1,n)if(mb[i][n-j+1]!=c[i][j]) return false;return true;}
inline bool change5(){r(i,1,n)r(j,1,n)c[i][j]=tmp[i][n-j+1];return change1()||change2()||change3();}
inline bool change6(){r(i,1,n)r(j,1,n)if(mb[i][j]!=c[i][j]) return false;return true;}
signed main()
{
scanf("%d\n",&n);
r(i,1,n) gets(c[i]+1);
r(i,1,n) gets(mb[i]+1);
if(change1()) return puts("1")&0;
if(change2()) return puts("2")&0;
if(change3()) return puts("3")&0;
if(change4()) return puts("4")&0;
memcpy(tmp,c,sizeof(tmp));
if(change5()) return puts("5")&0;
memcpy(c,tmp,sizeof(c));
if(change6()) return puts("6")&0;
puts("7");
}
报告相同问题?