vitormartinotti

Untitled

Oct 28th, 2025
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.76 KB | None | 0 0
  1.  
  2.  
  3. int dx[] = {1,0,-1,0};
  4. int dy[] = {0,1,0,-1};
  5.  
  6. void bfs(pair<int,int> s){
  7.     queue<pair<int,int>> q;
  8.     q.push(s);
  9.     marc[s.first][s.second] = 1;
  10.     dist[s.first][s.second] = 0;
  11.     while(!q.empty()){
  12.         pair<int,int> v = q.front();
  13.         q.pop();
  14.         int x = v.second;
  15.         int y = v.first;
  16.         for(int k = 0; k <= 3; k++){
  17.             int nx = x+dx[k];
  18.             int ny = y+dy[k];
  19.             if(nx < 0 || nx >= m) continue; //m: nro de colunas da matriz
  20.             if(ny < 0 || ny >= n) continue; //n: nro de linhas da matriz
  21.             if(marc[ny][nx] != 0) continue; //já foi visitado
  22.            
  23.             q.push({ny,nx});
  24.             marc[ny][nx] = 1;
  25.             dist[ny][nx] = dist[y][x]+1;
  26.         }
  27.     }
  28. }
  29.  
Advertisement
Add Comment
Please, Sign In to add comment