代码求调
查看原帖
代码求调
743764
Z_Each楼主2024/8/9 14:58

除了最后一个点,其他的都re

为什么?为什么?为什么?

提交记录

#include<bits/stdc++.h>
using namespace std;
const int maxn=505;
int n,m,a[maxn][maxn],b[maxn][maxn];
inline int read(){
	int ret=0,f=1;char ch=getchar();
	while(!isdigit(ch)){if(ch=='-')f=-f;ch=getchar();}
	while(isdigit(ch))ret=(ret<<3)+(ret<<1)+(ch&15),ch=getchar();
	return ret*f;
}
int main(){
	n=read(),m=read();int k=1;
	for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)a[i][j]=i*n+j-n;
	while(m--){
		int x=read(),y=read(),r=read(),z=read();
		if(k&1){
			memcpy(b,a,sizeof b);
			if(z)for(int i=y-r;i<=y+r;i++)for(int j=x-r;j<=x+r;j++)b[x+y-j][y-x+i]=a[i][j];
			else for(int i=y-r;i<=y+r;i++)for(int j=x-r;j<=x+r;j++)b[x-y+j][y+x-i]=a[i][j];
		}
		else{
			memcpy(a,b,sizeof a);
			if(z)for(int i=y-r;i<=y+r;i++)for(int j=x-r;j<=x+r;j++)a[x+y-j][y-x+i]=b[i][j];
			else for(int i=y-r;i<=y+r;i++)for(int j=x-r;j<=x+r;j++)a[x-y+j][y+x-i]=b[i][j];
		}
		k++;
	}
	if(k){
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++)printf("%d ",a[i][j]);
			putchar('\n');
		}	
	}
	else{		
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++)printf("%d ",b[i][j]);
			putchar('\n');
		}	
	}
	return 0;
}
2024/8/9 14:58
加载中...