#include<iostream>
#include<string>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<ctime>
using namespace std;
int arr1[600][600];
int arr2[600][600];
int num=1;
void op(int x,int y,int r,int z)
{
for(int i=x-r;i<=x+r;i++)
{
for(int j=y-r;j<=y+r;j++)
{
if(z==1){arr2[2*y-j][i]=arr1[i][j];}
if(z==0){arr2[j][2*x-i]=arr1[i][j];}
}
}
for(int i=x-r;i<=x+r;i++)
{
for(int j=y-r;j<=y+r;j++)
{
arr1[i][j]=arr2[i][j];
}
}
}
int main()
{
int n,m,x,y,r,z;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
arr1[i][j]=num++;
}
while(m--)
{
cin>>x>>y>>r>>z;
op(x,y,r,z);
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{cout<<arr1[i][j]<<" ";}
cout<<endl;
}
}
行和列也没有弄反呀,一直找也找不到问题。