代码求调
查看原帖
代码求调
1063675
AK_lwh_888楼主2024/8/9 20:37
#include<bits/stdc++.h>
using namespace std;
const int N=501;
int a[N][N],n,m;
int b[N][N];
int c[N][N];
int x[N],y[N];
int r[N],z[N]; 
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;++i){
		cin>>x[i]>>y[i];
		cin>>r[i]>>z[i];
	}
	int ans=1;
	for(int i=1;i<=n;++i){
		for(int j=1;j<=n;++j){
			a[i][j]=ans;
			ans++;
		}
	}
	for(int i=1;i<=m;++i){
		if(z[i]==0){
			for(int w=x[i]-r[i];w<=x[i]+r[i];w++){
				for(int j=y[i]-r[i];j<=y[i]+r[i];j++){
					b[x[i]-y[i]+j][x[i]+y[i]-w]=a[w][j];
				}
			}
			for(int w=x[i]-r[i];w<=x[i]+r[i];w++){
				for(int j=y[i]-r[i];j<=y[i]+r[i];j++){
					a[w][j]=b[w][j];
				}
			}
		}
		else{
			for(int w=x[i]-r[i];w<=x[i]+r[i];w++){
				for(int j=y[i]-r[i];j<=y[i]+r[i];j++){
					b[x[i]-y[i]+j][y[i]-x[i]+w]=a[w][j];
				}
			}
			for(int w=x[i]-r[i];w<=x[i]+r[i];w++){
				for(int j=y[i]-r[i];j<=y[i]+r[i];j++){
					a[w][j]=b[w][j];
				}
			}
		}
	}
	int x2=1,y2=1;
	for(int i=1;i<=n;++i){
		for(int j=n;j>=1;--j){
			c[y2][x2]=a[j][i];
			x2++;
		}
		y2++;
	}
	for(int i=1;i<=n;++i){
		for(int j=1;j<=n;++j){
			cout<<c[i][j]<<" ";
		}
		cout<<"\n";
	}
	return 0;
}
2024/8/9 20:37
加载中...