求大佬指点!!!
查看原帖
求大佬指点!!!
725794
BBY123楼主2023/6/22 21:33
#include<bits/stdc++.h>
using namespace std;
int n,m,a[501][501],v[501][501],step,x,y,r,z;
void right(int x,int y,int r){
	for(int i = x-r;i <= x+r;i++){
		for(int j = y-r;j <= y+r;i++){
			v[i][j]=a[i][j];
		}
	}
	int x1=x+r,y1=y-r;
	for(int i = x-r;i <= x+r;i++){
		for(int j = y-r;j <= y+r;j++){
			a[i][j]=v[x1][y1];
			x1--;
		}
		x1=x+r,y1++;
	}
}
void left(int x,int y,int r){
	for(int i = x-r;i <= x+r;i++){
		for(int j = y-r;j <= y+r;i++){
			v[i][j]=a[i][j];
		}
	}
	int x1=x-r,y1=y+r;
	for(int i = x-r;i <= x+r;i++){
		for(int j = y-r;j <= y+r;j++){
			a[i][j]=v[x1][y1];
			x1++;
		}
		x1=x-r,y1--;
	}
}
int main(){
	cin>>n>>m;
	for(int i = 1;i <= n;i++){
		for(int j = 1;j <= n;j++){
			a[i][j]=++step;
		}
	}
	for(int i = 1;i <= m;i++){
		cin>>x>>y>>r>>z;
		if(z==0) right(x,y,r);
		else if(z==1) left(x,y,r);
	}
	for(int i = 1;i <= n;i++){
		for(int j = 1;j <= n;j++){
			cout<<a[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
}
2023/6/22 21:33
加载中...