Advertisement
marco15432

Untitled

May 27th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <queue>
  4. using namespace std;
  5. #define INF (1 << 29)
  6.  
  7. vector<vector<int> > ady;
  8.  
  9. vector<int> BFS(int cantidad, int inicial){///1
  10. vector<int> dist(cantidad, INF);
  11. queue<int> cola;
  12.  
  13. cola.push(inicial); dist[inicial] = 0;
  14. while(cola.size()) { ///2
  15. int nodo = cola.front();
  16. cola.pop();
  17.  
  18. for(int i=0; i<ady[nodo].size(); i++)
  19. { ///3
  20. int vecino = ady[nodo][i];
  21. if(dist[nodo]+6<dist[vecino])
  22. { ///4
  23. dist[vecino] = dist[nodo] + 6;
  24. cola.push(vecino);
  25. } ///-4
  26. } ///-3
  27. } ///-2
  28.  
  29. return dist;
  30. } ///-1
  31.  
  32. int main(){
  33. int n,m,u,v,q,s;
  34. cin>>q;
  35.  
  36. for(int i=0;i<q;i++){
  37. cin>>n>>m;
  38. ady.resize(n);
  39. for(int j=0;j<m;j++){
  40. cin>>u>>v;
  41. ady[u].push_back(v); ady[v].push_back(u);
  42. }
  43. cin>>s;
  44.  
  45. vector<int> distancia=BFS(n,s);
  46.  
  47. for(int j=0;j<n;j++){
  48. if(j!=s){
  49. if(distancia[j] = INF){cout<<"-1 ";
  50. }
  51. else{
  52. cout<<distancia[j]<<" ";
  53. }
  54. }
  55.  
  56. }
  57. cout<<endl;
  58. }
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66. return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement