fork(2) download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. vector<int> wynik;
  7. vector<int> v[301];
  8. int N, w;
  9. int vis[301];
  10.  
  11. void dfs(int r)
  12. {
  13.  
  14. for(int i=0;i<v[r].size();i++)
  15. {
  16. int s=v[r][i];
  17. if (vis[s]==0)
  18. {
  19. vis[s]=1;
  20. dfs(s);
  21. }
  22. }
  23. wynik.push_back(r);
  24. }
  25.  
  26. int main()
  27. {
  28. cin >> N;
  29.  
  30. for(int i=0;i<N;i++)
  31. {
  32. int a, b;
  33. cin >> a >> b;
  34. v[a].push_back(b);
  35. w=max(a,w);
  36. w=max(b,w);
  37. }
  38.  
  39. for(int i=1;i<=w;i++)
  40. vis[i]=0;
  41. for(int i=1;i<=w;i++)
  42. {
  43. if(vis[i]==0)
  44. {
  45. vis[i]=1;
  46. dfs(i);
  47. }
  48. }
  49.  
  50. for(int i=wynik.size()-1;i>=0;i--) cout << wynik[i] <<endl;
  51.  
  52. return 0;
  53. }
Success #stdin #stdout 0s 3472KB
stdin
3
1 2
3 4
2 3
stdout
1
2
3
4