Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
180671 | 林汐 | 骑士遍历1 | C++ | 通过 | 100 | 0 MS | 268 KB | 573 | 2024-08-21 17:19:08 |
#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;}