代码
#include <stdio.h>
using namespace std;
int main() {
int n;
scanf("%d",&n);
int a[n][n],b[n][n];
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
scanf("%d ",&a[i][j]);
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
scanf("%d ",&b[i][j]);
}
}
int tag =0;
int count = 0;
if(n == 1){
tag= 1;
printf("%d",0);
}else {
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (a[i][j] == b[i][j]) {
count++;
}
}
}
if (count == n * n ) {
tag = 1;
printf("%d", 0);
}
count = 0;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (a[i][j] == b[j][n - 1 - i]) {
count++;
}
}
}
if (count == n * n && tag == 0) {
tag =1;
printf("%d", 90);
}
count = 0;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (a[i][j] == b[n - i - 1][n - 1 - j]) {
count++;
}
}
}
if (count == n * n && tag == 0) {
tag = 1;
printf("%d", 180);
}
count = 0;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (a[i][j] == b[n - j - 1][i]) {
count++;
}
}
}
if (count == n * n && tag == 0) {
tag = 1;
printf("%d", 270);
}
}
if(tag == 0){
printf("%d",-1);
}
return 0;
}