提交时间:2024-03-26 13:44:51

运行 ID: 139850

#include<bits/stdc++.h> using namespace std; const int N=1e4+10; int dx[5]={0,1,2,2,1},dy[5]={0,-2,-1,1,2},res[N],n,m; bool f; void dfs(int x,int y,int k){ if(f)return; if(x==n&&y==m){ f=true; for(int i=1;i<k;i++)cout<<res[i]<<" "; return; } if((m-y)>2*(n-x))return; int xx,yy; for(int i=1;i<=4;i++){ xx=x+dx[i]; yy=y+dy[i]; if(!f&&xx>=1&&xx<=n&&yy>=1&&yy<=m){ res[k]=i; dfs(xx,yy,k+1); } } } int main(){ cin>>n>>m; dfs(1,1,1); if(!f)printf("-1\n"); return 0; }