10th AC玄关
查看原帖
10th AC玄关
931492
xiaohuanxiong楼主2024/5/8 22:40
#include<bits/stdc++.h>
using namespace std;
int n,m,x,y,r,z; 
int t[501][501]={};
int sum=1;
int main()
{
	cin>>n>>m;
  	for (int i=1;i<=n;i++)
  	{
   		for (int j=1;j<=n;j++)
   		{
   			t[i][j]=sum;
   			sum++;
		}
	}
   	for (int i=1;i<=m;i++)
   	{
		cin>>x>>y>>r>>z;
		if (z==1)
		{
			for (int j=r;j>=1;j--)
			{
				for (int k=j*2;k>=1;k--)
				{
					if (k==j*2)
					{
						int temp;
						temp=t[x-k+j][y-j];
						t[x-k+j][y-j]=t[x-k+j][y+j];
						t[x-k+j][y+j]=t[x+k-j][y+j];
						t[x+k-j][y+j]=t[x+k-j][y-j];
						t[x+k-j][y-j]=temp;
					}
					else
					{
						int temp;
						temp=t[x-k+j][y-j];
						t[x-k+j][y-j]=t[x-j][y+k-j];
						t[x-j][y+k-j]=t[x+k-j][y+j];
						t[x+k-j][y+j]=t[x+j][y-k+j];
						t[x+j][y-k+j]=temp;
					}
				}
			}
		} 
		else
		{
			for (int j=r;j>=1;j--)
			{
				for (int k=j*2;k>=1;k--)
				{
					if (k==j*2)
					{
						int temp;
						temp=t[x-k+j][y-j];
						t[x-k+j][y-j]=t[x+k-j][y-j];
						t[x+k-j][y-j]=t[x+k-j][y+j];
						t[x+k-j][y+j]=t[x-k+j][y+j];
						t[x-k+j][y+j]=temp;
					}
					else
					{
						int temp;
						temp=t[x-k+j][y-j];
						t[x-k+j][y-j]=t[x+j][y-k+j];
						t[x+j][y-k+j]=t[x+k-j][y+j];
						t[x+k-j][y+j]=t[x-j][y-k+j];
						t[x-j][y-k+j]=temp;
					}
				}
			}
		}
   	}
   	for (int i=1;i<=n;i++)
   	{
   		for (int j=1;j<=n;j++)
   		{
   			cout<<t[i][j]<<" ";
		}
		cout<<endl;
	}	
}
2024/5/8 22:40
加载中...