fork(2) download
  1. #include <iostream>
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4.  
  5. void dfs ( int n, vector < int > sasiad[],bool odwiedzone[]){
  6. odwiedzone[n] = true;
  7.  
  8. for(int i=0;i<sasiad[n].size();i++){
  9.  
  10. if(!odwiedzone[sasiad[n][i]]){
  11. cout<<" "<<sasiad[n][i];
  12. dfs(sasiad[n][i],sasiad,odwiedzone);
  13. }
  14. }
  15. }
  16.  
  17. int main()
  18. {
  19. int n;
  20. cin>>n;
  21. for(int e = 0;e<n;e++){
  22. int osob,wiadomosci,plotkarz,a,b;
  23. cin>>osob>>wiadomosci>>plotkarz;
  24.  
  25. vector < int > sasiad[osob+1];
  26.  
  27. bool start = false;
  28.  
  29. bool *odwiedzone = new bool[osob+1];
  30.  
  31. for(int i=0;i<wiadomosci;i++){
  32. cin>>a>>b;
  33. if(a == plotkarz) start = true;
  34. if(start) sasiad[a].push_back(b);
  35. }
  36.  
  37. cout<<plotkarz;
  38. dfs(plotkarz,sasiad,odwiedzone);
  39. cout<<endl;
  40.  
  41. delete []odwiedzone;
  42. }
  43. return 0;
  44. }
  45.  
Success #stdin #stdout 0s 15240KB
stdin
1
6 8 5
1 3
3 5
4 6
5 2
3 4
2 6
3 6
2 4
stdout
5 2 6 4