蒟蒻10分求调
查看原帖
蒟蒻10分求调
1110209
Eater_Tree楼主2024/4/1 18:39
#include<bits/stdc++.h>
using namespace std;
int n,m,x,y,r,z,vis[1500][1500],t[1500][1500],cnt=1;
void right(){
	for(int i=x-r;i<=x+r;i++){
		for(int j=y-r;j<=y+r;j++)
			t[j+x-y][x-i+y]=vis[i][j];
	}return ;
}void left(){
	for(int i=x-r;i<=x+r;i++){
		for(int j=x-r;j<=y+r;j++)
			t[y-j+x][i-x+y]=vis[i][j];
	}return ;
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++)
			vis[i][j]=cnt++;
	}while(m--){
		scanf("%d%d%d%d",&x,&y,&r,&z);
		memset(t,0,sizeof(t));
		if(z==0)
			right();
		else
			left();
		for(int i=x-r;i<=x+r;i++){
			for(int j=y-r;j<=y+r;j++)
				vis[i][j]=t[i][j];
		}
	}for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++)
			printf("%d ",vis[i][j]);
		printf("\n");
	}
	return 0;
}
2024/4/1 18:39
加载中...