fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. void shortestPath(vector<int> adj[],int v,int s)
  5. {
  6. queue<int> q;
  7. q.push(s);
  8. int distance[v];
  9. int path[v];
  10. for(int i=0;i<v;i++)
  11. distance[i]=-1;
  12. distance[s]=0;
  13. while(!q.empty())
  14. {
  15. int temp = q.front();
  16. cout<<temp<<" ";
  17. q.pop();
  18. vector<int>::iterator itr;
  19. for(itr = adj[temp].begin();itr!=adj[temp].end();itr++)
  20. {
  21. if(distance[*itr]==-1)
  22. {
  23. distance[*itr] = distance[temp]+1;
  24. path[*itr] = temp;
  25. q.push(*itr);
  26. }
  27. }
  28. }
  29.  
  30. }
  31.  
  32. int main()
  33. {
  34. int v,e,s;
  35. cin>>v>>e>>s;
  36. vector<int> adj[v];
  37. for(int i=0;i<e;i++)
  38. {
  39. int x,y;
  40. cin>>x>>y;
  41. adj[x].push_back(y);
  42. }
  43. shortestPath(adj,v,s);
  44. }
Success #stdin #stdout 0s 15240KB
stdin
7 10 0
0 1
0 3
1 3
1 4
2 0
2 5
3 5
3 6
4 6
6 5
stdout
0 1 3 4 5 6