求助样例能过,但测试只有10分
查看原帖
求助样例能过,但测试只有10分
1598561
kkdy123楼主2025/2/6 14:16
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
#define MAX 1000
int arr[MAX][MAX],arr2[MAX][MAX];
int main()
{
	int n,m,i,j,x,y,r,z,k=1,h,l;
	scanf("%d %d",&n,&m);
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
		{
			arr[i][j]=k;
			k++;
		}
	}
	while(m--)
	{
		scanf("%d %d %d %d",&x,&y,&r,&z);
		if (z==0)
		{
			for(j=y-r,h=1;j<=y+r;j++,h++)
			{
				for(i=x+r,l=1;i>=x-r;i--,l++)
				{
					arr2[h][l]=arr[i][j];
				}
			}
			for(i=x-r,h=1;i<=x+r;i++,h++)
			{
				for(j=y-r,l=1;j<=x+r;j++,l++)
				{
					arr[i][j]=arr2[h][l];
				}
			}
		}
		else
		{
			for(j=y+r,h=1;j>=y-r;j--,h++)
			{
				for(i=x-r,l=1;i<=x+r;i++,l++)
				{
					arr2[h][l]=arr[i][j];
				}
			}
			for(i=x-r,h=1;i<=x+r;i++,h++)
			{
				for(j=y-r,l=1;j<=x+r;j++,l++)
				{
					arr[i][j]=arr2[h][l];
				}
			}
		}
	}
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
		{
			printf("%d ",arr[i][j]);
		}
		printf("\n");
	 } 
    return 0;
}

2025/2/6 14:16
加载中...