Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- vector<int> grafo[MAXN];
- int marc[MAXN]; //marc[v] = 0 v não foi visitado
- int dist[MAXN];
- void bfs(int s){
- queue<int> q;
- q.push(s);
- marc[s] = 1;
- dist[s] = 0;
- pai[s] = s;
- while(!q.empty()){
- int v = q.front();
- q.pop();
- for(int i = 0; i < grafo[v].size(); i++){
- int viz = grafo[v][i];
- if(marc[viz] == 0){
- q.push(viz);
- marc[viz] = 1;
- dist[viz] = dist[v]+1;
- pai[viz] = v;
- }
- }
- }
- }
- vector<int> caminho;
- void find_caminho(int v){
- while(pai[v] != v){
- v = pai[v];
- caminho.push_back(v);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement