#include <bits/stdc++.h> #define MAX 10 using namespace std; //上下翻转 void Topfilp(int (&data)[MAX][MAX],int size){ for(int i = 0; i < size / 2; i++){ //翻转次数控制 for(int j = 1; j <= size; j++){ //行数控制 swap(data[1+i][j],data[size-i][j]); } } } //左右翻转 void Leftfilp(int (&data)[MAX][MAX],int size){ for(int i = 0; i < size /2 ; i++){ for(int j = 1; j <= size; j++){ swap(data[j][1+i],data[j][size-i]); } } } //对称翻转 void DuiCheng(int (&data)[MAX][MAX],int size){ for(int i = 1; i <= size; i++){ for(int j = 1; j < i; j++){ swap(data[i][j],data[j][i]); } } } bool Check(int data[MAX][MAX],int a[MAX][MAX],int size){ for(int i = 1; i <= size; i++){ for(int j = 1; j <= size; j++){ if(data[i][j] != a[i][j]) return false; } } return true; } int main(){ int n,tmp; cin>>n; int data[MAX][MAX],a[MAX][MAX]; for(int i = 1; i <= n; i++){ for(int j = 1; j <= n; j++){ cin>>data[i][j]; } } for(int i = 1; i <= n; i++){ for(int j = 1; j <= n; j++){ cin>>a[i][j]; } } if(Check(data,a,n)){ cout<<"0"; return 0; } Topfilp(data,n); DuiCheng(data,n); if(Check(data,a,n)){ cout<<"90"; //顺时针90 return 0; } Topfilp(data,n); DuiCheng(data,n); if(Check(data,a,n)){ cout<<"180"; return 0; } Topfilp(data,n); DuiCheng(data,n); if(Check(data,a,n)){ cout<<"270"; return 0; } cout<<"-1"; }