1 solutions

  • 0
    @ 2025-1-29 19:13:31

    #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