提交时间:2023-11-03 13:36:36

运行 ID: 108485

#include<bits/stdc++.h> using namespace std; int x,y,m=1,n=1,k=1; int a[100]; int print() { for(int x=1;x<=k;x++) cout<<a[x]<<" "; return 0; } int dfs(int x,int y) { if(m==x&&n==y) { print(); return 0; } else { if((m+1<=x)&&(n-2>0)) { m+=1; n-=2; k++; a[k]=1; dfs(x,y); a[k]=0; } if((m+2<=x)&&(n-1>0)) { m+=2; n-=1; k++; a[k]=2; dfs(x,y); a[k]=0; } if((m+2<=x)&&(n+1<=y)) { m+=2; n+=1; k++; a[k]=3; dfs(x,y); a[k]=0; } if((m+1<=x)&&(n+2<=y)) { m+=1; n+=2; k++; a[k]=4; dfs(x,y); a[k]=0; } return 0; } cout<<"-1"; } int main() { cin>>x>>y; dfs(x,y); return 0; }