1 solutions
-
0
#include<bits/stdc++.h> using namespace std; const int N=200; int n,m,s1,s2,e1,e2; bool check[N][N]; int a[N][N]; int dx[4]={0,-1,0,1}; int dy[4]={-1,0,1,0}; struct point{ int x; int y; vector<pair<int,int>>path; }; queueq; void bfs() { point aim; aim.x=s1; aim.y=s2; aim.path.push_back({s1,s2}); q.push(aim); check[s1][s2]=true; while(!q.empty()) { point aim=q.front(); if(aim.xe1&&aim.ye2){ for(size_t i=0;i<aim.path.size();i++){ if(i!=0){ cout<<"->"; } cout<<"("<<aim.path[i].first<<","<<aim.path[i].second<<")"; } return; } for(int i=0;i<4;i++){ int nx=dx[i]+aim.x; int ny=dy[i]+aim.y; if(a[nx][ny]==0&&nx>0&&nx<=n&&ny>0&&ny<=m&&!check[nx][ny]){ check[nx][ny]=true; point temp=aim; temp.x=nx; temp.y=ny; temp.path.push_back({nx,ny}); q.push(temp); } } q.pop(); } cout<<"no way"; } int main() { int i,j; cin>>n>>m; for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ cin>>a[i][j]; } } cin>>s1>>s2>>e1>>e2; bfs(); return 0; }
- 1
Information
- ID
- 779
- Time
- 1000ms
- Memory
- 120MiB
- Difficulty
- 7
- Tags
- # Submissions
- 111
- Accepted
- 22
- Uploaded By