Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int dx[] = {1,0,-1,0};
- int dy[] = {0,1,0,-1};
- void bfs(pair<int,int> s){
- queue<pair<int,int>> q;
- q.push(s);
- marc[s.first][s.second] = 1;
- dist[s.first][s.second] = 0;
- while(!q.empty()){
- pair<int,int> v = q.front();
- q.pop();
- int x = v.second;
- int y = v.first;
- for(int k = 0; k <= 3; k++){
- int nx = x+dx[k];
- int ny = y+dy[k];
- if(nx < 0 || nx >= m) continue; //m: nro de colunas da matriz
- if(ny < 0 || ny >= n) continue; //n: nro de linhas da matriz
- if(marc[ny][nx] != 0) continue; //já foi visitado
- q.push({ny,nx});
- marc[ny][nx] = 1;
- dist[ny][nx] = dist[y][x]+1;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment