0tps求助
查看原帖
0tps求助
1012241
Dcchen楼主2023/11/26 20:31
#include<iostream>
using namespace std;
int n,m,a[105][105],x,y,r,z;
void circle(bool z,int x,int y,int r){
	int res[3][3],k=0,l=0,b[3][3];
	for(int i=x-r;i<=x+r;i++){
		for(int j=y-r;j<=y+r;j++){
    		res[k][l]=a[i][j];
    		l++;
		}
		k++;
		l=0;
	}
	k=0,l=0;
	if(z){
	    for(int i=0;i<3;i++){
		    for(int j=0;j<3;j++){
			    b[i][j]=a[j][3-1-i];
		    }
	    }	
	}
	else{
	    for(int i=0;i<3;i++){
		    for(int j=0;j<3;j++){
		    	b[i][j]=a[3-1-j][i];
		    }
	    }	
	}
	for(int i=x-r;i<=x+r;i++){
		for(int j=y-r;j<=y+r;j++){
			a[i][j]=b[k][l];
			l++;
		}
		k++;
		l=0;
	}
}
int main(){
	cin>>n>>m;
	int pos=1;
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			a[i][j]=pos;
			pos++;
		}
	}
	for(int i=0;i<m;i++){
	    cin>>x>>y>>r>>z;
		circle(z,x,y,r);
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			cout<<a[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
}
2023/11/26 20:31
加载中...