#include <stdio.h>
#include <string.h>
#define N 105
int n, m, i, j, k, a[N][N], b[N][N], c[N][N];
int ok(){
    for(i=1; i<=n; i++){
        for(j=1; j<=n; j++){
            if(a[i][j] != 1) continue;//非1的地方忽略
            if(b[i][j] != 1) return 0;//1的地方必须是1
        }
    }
    return 1;
}
void zhuan(){
    for(i=1; i<=n; i++){
        for(j=1; j<=n; j++){
            c[i][j] = a[n+1-j][i];//按照规则旋转
        }
    }
    memcpy(a, c, sizeof(a));
}
int main(){
    scanf("%d", &n);
    for(i=1; i<=n; i++){
        for(j=1; j<=n; j++){
            scanf("%d", &a[i][j]);
        }
    }
    for(i=1; i<=n; i++){
        for(j=1; j<=n; j++){
            scanf("%d", &b[i][j]);
        }
    }
    for(k=1; k<=9; k++){
        if(ok()) break;//顺时针旋转,周期为4
        zhuan();
    }
    printf("%s\n", k<=9?"Yes":"No");
    return 0;
}

作者 crxis

发表回复