#include <bits/stdc++.h>
using namespace std;
int a[505][505],t[505][505],i,j,k,c,v,k1,k2,k3,k4,temp=1;
int ssz(int x,int y,int r)
{
for(i=x-r;i<=x+r;i++){
for(j=y-r;j<=y+r;j++)
{
t[i][j]=a[i][j];
}
}
for(i=x-r;i<=x+r;i++){
for(j=y-r;j<=y+r;j++)
{
a[j][x+r-i]=t[i][j];
}
}
}
int nsz(int q,int w,int e)
{
for(i=q-e;i<=q+e;i++){
for(j=w-e;j<=w+e;j++)
{
t[i][j]=a[i][j];
}
}
for(i=q-e;i<=q+e;i++)
{
for(j=w-e;j<=w+e;j++)
{
a[q+w-j][i]=t[i][j];
}
}
}
void emptyt()
{
for(i=0;i<505;i++)
for(j=0;j<505;j++)
t[i][j]=0;
}
void out()
{
for(i=0;i<c;i++)
{
for(j=0;j<c;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
}
int main()
{
scanf("%d%d",&c,&v);
for(i=0;i<c;i++)
for(j=0;j<c;j++)
{
a[i][j]=temp;
temp++;
}
for(int l=0;l<v;l++)
{
emptyt();
scanf("%d%d%d%d",&k1,&k2,&k3,&k4);
if(k4==0)ssz(k1-1,k2-1,k3);
if(k4==1)nsz(k1-1,k2-1,k3);
cout<<endl;
out();
cout<<endl;
}
return 0;
}
运行结果:

正解:
