#include<bits/stdc++.h>
using namespace std;
const int maxn=10;
int a[maxn][2],flag=0;
bool c[maxn][maxn];
int d[8][2]={{-1,2},{-1,-2},{-2,-1},{-2,1},{1,2},{1,-2},{2,-1},{2,1}};
void print(int k){
for(int i=1;i<=k-1;i++)cout<<"("<<a[i][0]<<","<<a[i][1]<<")"<<"->";
cout<<"("<<a[k][0]<<","<<a[k][1]<<")"<<endl;
}
int n,m,x1,y1,k=0;
void search(int x,int y){
if(flag==n*m)print(k);
else{
for(int i=0;i<8;i++){
if(x+d[i][0]>=1&&x+d[i][0]<=n&&y+d[i][1]>=1&&y+d[i][1]<=m&&c[x+d[i][0]]
[y+d[i][1]]){
k++;
flag++;
c[x+d[i][0]][y+d[i][1]]=false;
a[k][0]=x+d[i][0];
a[k][1]=y+d[i][1];
search(x+d[i][0],y+d[i][1]);
k--;
flag--;
c[x+d[i][0]][y+d[i][1]]=true;
x=x-d[i][0];
y=y-d[i][1];
}
}
}
}
int main(){
cin>>n>>m>>x1>>y1;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
c[i][j]=true;
}
}
search(x1,y1);
//cout<<"No Answer!";
return 0;
}
人傻了,一直调不出来,哪位dalao帮忙解答一下点关注