cst_123 @ 2022-04-23 20:14:47
14分 ,只过第二个点。
#include<bits/stdc++.h>
using namespace std;
typedef long long lon;
long long read(){
long long x=0,sg=1;char cha=getchar();
while(cha<'0'||cha>'9'){if(cha=='-')sg=-1;cha=getchar();}
while(cha>='0'&&cha<='9'){x=x*10+cha-'0';cha=getchar();}
return x*sg;
}
lon n,XXX,YYY;
void cst_Dfs(long long N,long long Zx,long long Zy,long long xx,long long yy){
if(N==0)
return;
int to=(1<<N-1);
if(xx<Zx+to&&yy<Zy+to){
//左上角
printf("%lld %lld %lld\n",Zx+to,Zy+to,1);
cst_Dfs(N-1,Zx,Zy,xx,yy);
cst_Dfs(N-1,Zx,Zy+to,Zx+to-1,Zy+to);
cst_Dfs(N-1,Zx+to,Zy,Zx+to,Zy+to-1);
cst_Dfs(N-1,Zx+to,Zy+to,Zx+to,Zy+to);
}
else if(xx<Zx+to){
//右上角
printf("%lld %lld %lld\n",Zx+to,Zy+to-1,2);
cst_Dfs(N-1,Zx,Zy,Zx+to-1,Zy+to-1);
cst_Dfs(N-1,Zx,Zy+to,xx,yy);
cst_Dfs(N-1,Zx+to,Zy,Zx+to,Zy+to-1);
cst_Dfs(N-1,Zx+to,Zy+to,Zx+to,Zy+to);
}
else if(yy<Zx+to){
//左下角
printf("%lld %lld %lld\n",Zx+to-1,Zy+to,3);
cst_Dfs(N-1,Zx,Zy,Zx+to-1,Zy+to-1);
cst_Dfs(N-1,Zx,Zy+to,Zx+to-1,Zy+to);
cst_Dfs(N-1,Zx+to,Zy,xx,yy);
cst_Dfs(N-1,Zx+to,Zy+to,Zx+to,Zy+to);
}
else{
//右下角
printf("%lld %lld %lld\n",Zx+to-1,Zy+to-1,4);
cst_Dfs(N-1,Zx,Zy,Zx+to-1,Zy+to-1);
cst_Dfs(N-1,Zx,Zy+to,Zx+to-1,Zy+to);
cst_Dfs(N-1,Zx+to,Zy,Zx+to,Zy+to-1);
cst_Dfs(N-1,Zx+to,Zy+to,xx,yy);
}
}
int main(){
n=read();
XXX=read();
YYY=read();
cst_Dfs(n,1,1,XXX,YYY);
return 0;
}
by lihanwen12 @ 2022-04-23 20:48:23
第
if(yy<Zx+to){