Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
175672 | qiuyanshen | 骑士遍历1 | C++ | 通过 | 100 | 0 MS | 244 KB | 700 | 2024-08-21 10:04:00 |
#include<bits/stdc++.h> using namespace std; int road[100]; int dx[5]={0,1,2,2,1}; int dy[5]={0,-2,-1,1,2}; int f; int ax,ay; void dfs(int x,int y,int k){ if (f==1){ return; } if(x==ax&&y==ay){ f=1; for(int i=0;i<k;i++){ cout<<road[i]<<" "; } return; } if((ay-y)>2*(ax-x)){ return; } for(int i=1;i<=4;i++){ int nx=x+dx[i]; int ny=y+dy[i]; if(!f&&nx>=1&&nx<=ax&&ny>=1&&ny<=ay){ road[k]=i; dfs(nx,ny,k+1); } } return; } int main(){ cin>>ax>>ay; dfs(1,1,0); if(f==0){ cout<<-1; } return 0; }