#include<bits/stdc++.h>
using namespace std;
long long n,xx[6]={0,1,0,-1},yy[6]={1,0,-1,0},ax[5000],by[5000],k=0,h=0;
bool f[66][66];
void dfs(int x,int y,int k){
if(x==n&&y==n){
h++;
cout<<h<<":1,1";
for(int j=1;j<=k-1;j++) cout<<"->"<<ax[j]<<","<<by[j];
cout<<endl;
return ;
}
for(int i=0;i<4;i++){
int nx=x+xx[i],ny=y+yy[i];
if(nx>=1&&nx<=n&&ny>=1&&ny<=n&&!f[nx][ny]){
f[nx][ny]=true;
ax[k]=nx,by[k]=ny;
dfs(nx,ny,k+1);
f[nx][ny]=false;
}
}
}
int main(){
cin>>n;
f[1][1]=true;
ax[0]=1;
by[0]=1;
dfs(1,1,1);
return 0;
}
评论区