提交时间:2025-04-09 20:55:13

运行 ID: 9235

#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; }