fork download
  1. #include <iostream>
  2. #include <map>
  3. using namespace std;
  4.  
  5. int main() {
  6. map < int ,pair<int,int>> back;
  7. map <int, bool> used;
  8. int a,b;
  9. while (cin >>a >> b){
  10. if (!back.count(a))
  11. back[a] = make_pair(b,0);
  12. else back[a] = make_pair( back[a].first, b);
  13.  
  14. if (!back.count(b))
  15. back[b] = make_pair(a,0);
  16. else back[b] = make_pair( back[b].first, a);
  17. }
  18. for (auto x : back){
  19. auto R = x.first;
  20.  
  21. while (!used[R]){
  22. used[R] = true;
  23. cout << R<<" ";
  24. if (!used[back[R].first])
  25. R = back[R].first;
  26. else R = back[R].second;
  27. }
  28. cout << endl;
  29. }
  30.  
  31. return 0;
  32. }
Success #stdin #stdout 0s 15232KB
stdin
0 1
3 2
4 0
3 4
2 1
9 8
10 9
8 10
stdout
0 1 2 3 4 




8 9 10