萌新56pts的奇怪错误
查看原帖
萌新56pts的奇怪错误
469066
zzxLLL楼主2022/2/10 22:41

2 4 7 WA 求调

#include<cstdio>
#define printf(str,a,b) printf(str,b,a)
const int M=1200;

void solve(int x,int y,int size,int ux,int uy){
	if(size==2){
		if(ux==x&&uy==y) printf("%d %d 1\n",x+1,y+1);
		if(ux==x+1&&uy==y) printf("%d %d 2\n",x,y+1);
		if(ux==x&&uy==y+1) printf("%d %d 3\n",x+1,y);
		if(ux==x+1&&uy==y+1) printf("%d %d 4\n",x,y);
		return;
	}
	
	int subsize=size/2;
	int midx=x+subsize,midy=y+subsize;
	
	//  1 \ 2
	//----\----
	//  3 \ 4
	
	if(ux<midx&&uy<midy){
		printf("%d %d 1\n",midx,midy);
		solve(x,y,subsize,ux,uy);
		solve(midx,y,subsize,midx,midy-1);
		solve(x,midy,subsize,midx-1,midy);
		solve(midx,midy,subsize,midx,midy);
		return;
	}
	
	if(ux>=midx&&uy<midy){
		printf("%d %d 2\n",midx-1,midy);
		solve(x,y,subsize,midx-1,midy-1);
		solve(midx,y,subsize,ux,uy);
		solve(x,midy,subsize,midx-1,midy);
		solve(midx,midy,subsize,midx,midy);
		return;
	}
	
	if(ux<midx&&uy>=midy){
		printf("%d %d 3\n",midx,midy-1);
		solve(x,y,subsize,midx-1,midy-1);
		solve(midx,y,subsize,midx,midy-1);
		solve(x,midy,subsize,ux,uy);
		solve(midx,midy,subsize,midx,midy);
		return;
	}
	
	if(ux>=midx&&uy>=midy){
		printf("%d %d 4\n",midx-1,midy-1);
		solve(x,y,subsize,midx-1,midy-1);
		solve(midx,y,subsize,midx,midy-1);
		solve(x,midy,subsize,midx-1,midy);
		solve(midx,midy,subsize,ux,uy);
		return;
	}
}

int k,x,y;
int main(){
	scanf("%d%d%d",&k,&x,&y);
	solve(1,1,1<<k,x,y);
	return 0;
}
2022/2/10 22:41
加载中...