只有最后一个测试点是AC,八个RE,一个WA,有大佬可以帮我看看吗😭
#include <stdio.h>
int main()
{
int n,m;
scanf("%d %d",&n,&m);
int magic[m][4];
for(int i=0; i<m; i++)
{
for(int j=0; j<4; j++)
{
scanf("%d",&magic[i][j]);
}
}
int num[n][n];
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
num[i][j]=(n*i)+(j+1);
}
}
for(int p=0; p<m; p++)
{
int x=magic[p][0]-1;
int y=magic[p][1]-1;
int r=magic[p][2];
int z=magic[p][3];
if(z==0)
{
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
if(i-x>=0-r&&i-x<=r&&j-y>=0-r&&j-y<=r&&i-x+j-y<0)
{
int temp;
int k1=i-x;
int k2=j-y;
temp=num[i][j];
num[i][j]=num[x-k2][y-k1];
num[x-k2][y-k1]=temp;
}
}
}
}
else if(z==1)
{
for(int i=x-r+1; i<=x+r; i++)
{
for(int j=y-r; j<i; j++)
{
int temp;
int k1=i-x;
int k2=j-y;
temp=num[i][j];
num[i][j]=num[x+k2][y+k1];
num[x+k2][y+k1]=temp;
}
}
}
for(int i=x-r; i<x; i++)
{
for(int j=y-r; j<=y+r; j++)
{
int temp;
int k=x-i;
temp=num[i][j];
num[i][j]=num[x+k][j];
num[x+k][j]=temp;
}
}
}
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
printf("%d ",num[i][j]);
}
printf("\n");
}
return 0;
}