[可以看一下我的贴子](https://www.luogu.com.cn/discuss/601922)
by CityFish @ 2023-04-29 19:10:11
希望能帮到你
by CityFish @ 2023-04-29 19:10:49
```cpp
#include<bits/stdc++.h>
using namespace std;
#define print(x,y,w) printf("%d %d %d\n",t+x-1,l+y-1,w)
const int N=1e3;
int a[N][N],vis[N][N];
void run(int l,int r,int t,int b,int x,int y){
int w2=(r-l+1)>>1;
if(w2==1){
if(x<=w2)
if(y<=w2)
print(2,2,1);
else
print(2,1,2);
else
if(y<=w2)
print(1,2,3);
else
print(1,1,4);
return ;
}
if(x<=w2){
if(y<=w2){
print(w2+1,w2+1,1);
run(l,r-w2,t,b-w2,x,y);
run(l+w2,r,t,b-w2,w2,1);
run(l,r-w2,t+w2,b,1,w2);
run(l+w2,r,t+w2,b,1,1);
}
else{
print(w2+1,w2,2);
run(l,r-w2,t,b-w2,w2,w2);
run(l+w2,r,t,b-w2,x,y-w2);
run(l,r-w2,t+w2,b,1,w2);
run(l+w2,r,t+w2,b,1,1);
}
}
else{
if(y<=w2){
print(w2,w2+1,3);
run(l,r-w2,t,b-w2,w2,w2);
run(l+w2,r,t,b-w2,w2,1);
run(l,r-w2,t+w2,b,x-w2,y);
run(l+w2,r,t+w2,b,1,1);
}
else{
print(w2,w2,4);
run(l,r-w2,t,b-w2,w2,w2);
run(l+w2,r,t,b-w2,w2,1);
run(l,r-w2,t+w2,b,1,w2);
run(l+w2,r,t+w2,b,x-w2,y-w2);
}
}
return ;
}
int main(){
int x,y,k;
cin>>k>>x>>y;
run(1,1<<k,1,1<<k,x,y);
return 0;
}
by lijuncheng_1207 @ 2023-07-17 10:14:20