#include<iostream> #include<cstring> #include<algorithm> #include<queue> #include<stdio.h> #include<string.h> #include<cmath> using namespace std; int vist[4][2]={{1,0},{0,1},{-1,0},{0,-1}}; int mapp[5][5]; int book[5][5]={0}; int lu[1000][2]={0}; int flag=0; int dfs(int x,int y,int step) { if(x==4&&x==y&&flag==0) { flag=1; for(int i=0;i<step;i++) cout<<"("<<lu[i][0]<<", "<<lu[i][1]<<")"<<endl; return 0; } if(x<0||y<0||x>=5||y>=5) return 0; for(int i=0;i<4;i++) { int tx=x+vist[i][0]; int ty=y+vist[i][1]; if(tx<0||ty<0||tx>=5||ty>=5||book[tx][ty]==1||mapp[tx][ty]==1) continue; else { book[tx][ty]=1; lu[step][1]=ty; lu[step][0]=tx; dfs(tx,ty,step+1); book[tx][ty]=0; } } } int main() { for(int i=0;i<5;i++) for(int j=0;j<5;j++) cin>>mapp[i][j]; lu[0][0]=0; lu[0][1]=0; dfs(0,0,1); return 0; } |
Double click to view unformatted code.