P1228 地毯填补问题

#include<bits/stdc++.h>
using namespace std;
#define qw dfs(zx+l-1,zy+l-1,zx,zy,l);
#define we dfs(zx+l-1,zy+l,zx,zy+l,l);
#define er dfs(zx+l,zy+l-1,zx+l,zy,l);
#define rt dfs(zx+l,zy+l,zx+l,zy+l,l);void dfs(int x,int y,int zx,int zy,int l){if(l==1) return;l>>=1;if(x-zx<l&&y-zy<l){cout<<zx+l<<" "<<zy+l<<" "<<1<<endl;dfs(x,y,zx,zy,l);weerrt }if(x-zx<l&&y-zy>=l){ cout<<zx+l<<" "<<zy+l-1<<" "<<2<<endl;dfs(x,y,zx,zy+l,l);qwerrt }if(x-zx>=l&&y-zy<l){cout<<zx+l-1<<" "<<zy+l<<" "<<3<<endl;dfs(x,y,zx+l,zy,l);qwwert } if(x-zx>=l&&y-zy>=l){cout<<zx+l-1<<" "<<zy+l-1<<" "<<4<<endl;dfs(x,y,zx+l,zy+l,l);qwweer}
}int main()
{int k,x,y;cin>>k>>x>>y;dfs(x,y,1,1,1<<k);return 0;
}