提交时间:2023-11-01 13:44:13

运行 ID: 108240

#include<bits/stdc++.h> using namespace std; int n,m,i,j; int c[105][105]; bool b[105][105]; queue<pair<int,int> >q; void dfs(int x,int y) { if(c[x][y]=='#')return; q.push(make_pair(x,y)); b[x][y]=true; c[x][y]='#'; dfs(x,y-1); dfs(x,y+1); dfs(x-1,y); dfs(x+1,y); } int main() { int k=1,l=1; cin>>n>>m; for(i=0;i<=n+1;i++) { for(j=0;j<=m+1;j++) { c[i][j]='#'; } } for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { cin>>c[i][j]; } } dfs(k,l); if(!b[n][m])return cout<<-1,0; while(q.size()){ cout<<q.front().first<<' '<<q.front().second<<'\n'; if(q.front()==make_pair(m,n))break; q.pop(); } }