Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include<cstdio>#include<algorithm>using namespace std;struct mat{int mp[101][101];};bool cmp(const mat&a,const mat&b,int x1,int y1,int x2,int y2 ){for (int i=x1; i<=x2; i++)for (int j=y1; j<=y2; j++)if (a.mp[i][j]!=b.mp[i][j])return (a.mp[i][j]<b.mp[i][j]);return false;}void rota(mat &m,int x1,int y1,int x2,int y2){mat tmp;for (int i=x1; i<=x2; i++)for (int j=y1; j<=y2; j++)tmp.mp[j-y1+1+x1-1][x2-i+1+y1-1]=m.mp[i][j];for (int i=x1; i<=x2; i++)for (int j=y1; j<=y2; j++)m.mp[i][j]=tmp.mp[i][j];}void rotate_block(mat &m,int n,int x1,int y1,int x2,int y2){int n1=(x2-x1+1)/2;int n2=(y2-y1+1)/2;for (int i=x1; i<n1+x1; i++)