提交时间:2024-08-21 17:19:08

运行 ID: 180671

#include<bits/stdc++.h> using namespace std; const int o=1e4+10; int ax[5]={0,1,2,2,1}; int ay[5]={0,-2,-1,1,2}; int r[o]; bool e; int n,m; void d(int x,int y,int k){ if(e){ return;} if(x==n&&y==m){ e=true; for(int i=1;i<k;i++){ printf("%d",r[i]); cout<<" ";} return;} if((m-y)>2*(n-x)){ return;} int x1,y1; for(int i=1;i<=4;i++){ x1=x+ax[i]; y1=y+ay[i]; if(!e&&x1>=1&&x1<=n&&y1>=1&&y1<=m){ r[k]=i; d(x1,y1,k+1);}}} int main(){ scanf("%d%d",&n,&m); d(1,1,1); if(!e){ printf("-1\n");} return 0;}