Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<cstdio>const int MAXN=101;int a[MAXN][MAXN],b[MAXN][MAXN],c[MAXN][MAXN],d[MAXN][MAXN];int cmp(int n,int a[MAXN][MAXN]=a,int b[MAXN][MAXN]=b,int x=0,int y=0){for(int i=0;i<n;++i) for(int j=0;j<n;++j)if(a[x+i][y+j]>b[x+i][y+j]) return 1;else if(a[x+i][y+j]<b[x+i][y+j]) return -1;return 0;}void memset(int a[MAXN][MAXN],int b[MAXN][MAXN],int x,int y,int n){for(int i=0;i<n;++i) for(int j=0;j<n;++j)a[x+i][y+j]=b[x+i][y+j];}void rorate(int a[MAXN][MAXN],int x,int y,int n,int ang=1){for(int t=1;t<=ang;++t){if(n&1){for(int i=0;i<n;++i) for(int j=0;j<n;++j)d[x+j][y+n-1-i]=a[x+i][y+j];memset(a,d,x,y,n);}else{n/=2;for(int i=0;i<n;++i) for(int j=0;j<n;++j){d[x+i][y+j+n]=a[x+i][y+j];d[x+i+n][y+j+n]=a[x+i][y+j+n];d[x+i][y+j]=a[x+i+n][y+j];d[x+i+n][y+j]=a[x+i+n][y+j+n];}memset(a,d,x,y,n*2);}}