Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
9236 | A班-许锘林 | 古墓旋转石门之谜 | C++ | 通过 | 100 | 1 MS | 260 KB | 1483 | 2025-04-09 20:55:53 |
#include <bits/stdc++.h> using namespace std; int main() { int N; cin>>N; for(int i = 0;i < N;i++) { int n; cin>>n; int a[n][n]; int b[n][n]; int c[n][n] = {0}; int d[n][n] = {0}; int e[n][n] = {0}; for(int j = 0;j < n;j++) { for(int k = 0;k < n;k++) { cin>>a[j][k]; } } int flag = 1; for(int j = 0;j < n;j++) { for(int k = 0;k < n;k++) { cin>>b[j][k]; if(a[j][k] != b[j][k]) { flag = 0; } } } if(flag == 1) { cout<<"YES"<<endl; continue; } for(int j = 0;j < n;j++) { for(int k = n - 1,h = 0;k >= 0,h < n;k--,h++) { c[j][h] = a[k][j]; } } for(int j = 0;j < n;j++) { for(int k = n - 1,h = 0;k >= 0,h < n;k--,h++) { d[j][h] = c[k][j]; } } for(int j = 0;j < n;j++) { for(int k = n - 1,h = 0;k >= 0,h < n;k--,h++) { e[j][h] = d[k][j]; } } int flag1 = 0,flag2 = 0,flag3 = 0; for(int j = 0;j < n;j++) { for(int k = 0;k < n;k++) { if(b[j][k] != c[j][k]) { flag1 = 1; } if(b[j][k] != d[j][k]) { flag2 = 1; } if(b[j][k] != e[j][k]) { flag3 = 1; } } } if(!flag1 || !flag2 || !flag3) { cout<<"YES"<<endl; } else { cout<<"NO"<<endl; } } return 0; }