题目
https://www.luogu.org/problemnew/show/P1205
解题思路
模拟,需要注意的是用scanf()读入字符的方法。
代码
#include<cstdio>
#include<algorithm>
#define rep(i,x,y) for (register int i=x;i<=y;i++)
#define fre(x) freopen(#x".in","r",stdin);freopen(#x".out","w",stdout)
#define N 12
using namespace std;
int n;
struct matrix{
char a[N][N];
void in(){rep(i,0,n-1) rep(j,0,n-1) scanf(" %c",a[i]+j);}
matrix zh(){matrix ans; rep(i,0,n-1) rep(j,0,n-1) ans.a[i][j]=a[n-j-1][i]; return ans;}
matrix fh(){matrix ans; rep(i,0,n-1) rep(j,0,n-1) ans.a[i][j]=a[i][n-j-1]; return ans;}
bool operator ==(matrix ans){rep(i,0,n-1) rep(j,0,n-1) if (a[i][j]!=ans.a[i][j]) return 0; return 1;}
}f,t,m;
int main(){
scanf("%d",&n); f.in(); t.in(); m=f;
rep(i,1,3) {m=m.zh(); if (m==t) return 0&printf("%d",i);}
m=f.fh(); if (m==t) return 0&printf("4");
rep(i,1,3) {m=m.zh(); if (m==t) return 0&printf("5");}
if (f==t) return 0&printf("6");
printf("7");
}