2B

马里奥6 · 发布于 2025-06-19 · 浏览 291 回复 0

include

using namespace std; void solve(int l1,int r1,int l2,int r2,int x,int y) { int m1=(l1+l2)/2; int m2=(r1+r2)/2; int lost; if (x<=m1&&y<=m2) {

printf("%d %d %d\n",m1+1,m2+1,1); lost=1; }else if(x>m1&&y<=m2){

printf("%d %d %d\n",m1,m2+1,3);
lost=3;

} else if(x<=m1&&y>m2){ printf("%d %d %d\n",m1+1,m2,2); lost=2; }else if(x>m1&&y>m2){

printf("%d %d %d\n",m1,m2,4);
lost=4;

} if(l2-l1==1)return; if(lost==1)solve(l1,r1,m1,m2,x,y); else solve(l1,r1,m1,m2,m1,m2); if(lost==2)solve(l1,m2+1,m1,r2,x,y); else solve(l1,m2+1,m1,r2,m1,m2+1); if(lost==3)solve(m1+1,r1,l2,m2,x,y); else solve(m1+1,r1,l2,m2,m1+1,m2); if(lost==4)solve(m1+1,m2+1,l2,r2,x,y); else solve(m1+1,m2+1,l2,r2,m1+1,m2+1); } int main(){

int n,x,y;
scanf("%d%d%d",&n,&x,&y);
solve(1,1,1<<n,1<<n,x,y);
return 0;

}

全部回复 共 0 条

还没有人回复。往下写第一条。

发表回复