14pts 求条
查看原帖
14pts 求条
719854
hsr_ray楼主2024/7/26 21:31
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,x,y,a;
void solve(int k,int lx,int ly,int nx,int ny){
	if(k==0){
		return;
	}
	int t=(1<<k-1);
	int rx=lx+t,ry=ly+t;
	if(nx<rx&&ny<ry){
		//第一区间
		printf("%lld %lld 1\n",rx,ry);
		solve(k-1,lx,ly,nx,ny);
		solve(k-1,lx,ry,rx-1,ry);
		solve(k-1,rx,ly,rx,ry-1);
		solve(k-1,rx,ry,rx,ry);
	}
	else if(nx<rx){
		//第二区间	
		printf("%lld %lld 2\n",rx,ry-1);
		solve(k-1,lx,ly,rx-1,rx-1);
		solve(k-1,lx,ry,nx,ny);
		solve(k-1,rx,ly,rx,ry-1);
		solve(k-1,rx,ry,rx,ry);
	}
	else if(ny<ry){
		//第三区间
		printf("%lld %lld 3\n",rx-1,ry);
		solve(k-1,lx,ly,rx-1,rx-1);
		solve(k-1,lx,ry,rx-1,ry);
		solve(k-1,rx,ly,nx,ny);
		solve(k-1,rx,ry,rx,ry);
	}
	else{
		//第四区间
		printf("%lld %lld 4\n",rx-1,ry-1);
		solve(k-1,lx,ly,rx-1,rx-1);
		solve(k-1,lx,ry,rx-1,ry);
		solve(k-1,rx,ly,rx,ry-1);
		solve(k-1,rx,ry,nx,ny);
	}
}
signed main(){
	scanf("%lld%lld%lld",&n,&x,&y);
	a=n;
	n=pow(2,n);
	solve(a,1,1,x,y);
	
	return 0;
}

已找到hack

3
4 5
2024/7/26 21:31
加载中...