提交时间:2023-10-25 12:58:08

运行 ID: 107543

#include<bits/stdc++.h> using namespace std; bool a[105][105]; int a1[10000]; int a2[10000]; int l,v,n,m; bool as=0; int sb(int p,int x){ if(p==m&&x==n){ as=1; cout<<"1 1"<<endl; for(int i=1;i<=v;i++){ cout<<a1[i]<<' '<<a2[i]<<endl; } return 0; }else{ if(p!=1&&a[p-1][x]==0&&l!=3){ l=1; v++; a1[v]=p-1; a2[v]=x; return sb(p-1,x); } if(x!=1&&a[p][x-1]==0&&l!=4){ l=2; v++; a1[v]=p; a2[v]=x-1; return sb(p,x-1); } if(p!=m&&a[p+1][x]==0&&l!=1){ l=3; v++; a1[v]=p+1; a2[v]=x; return sb(p+1,x); } if(x!=n&&a[p][x+1]==0&&l!=2){ l=4; v++; a1[v]=p; a2[v]=x+1; return sb(p,x+1); } v=0; } } int main() { cin>>m>>n; for(int i=1;i<=m;i++){ for(int o=1;o<=n;o++){ cin>>a[i][o]; } } sb(1,1); if(as==0){ cout<<"-1"; } return 0; }