Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.99 KB | None | 0 0
  1. #include<iostream>
  2. #include<algorithm>
  3. #include<math.h>
  4. #include<vector>
  5. #include<string>
  6. #include<fstream>
  7.  
  8. using namespace std;
  9.  
  10. #define watch(x) cout << (#x) << " is " << (x) << endl
  11. #define fi(i, a, c) for (long long i = a; i < c; i++)
  12. vector<vector<long long>> g(2e5 + 1);
  13. vector<bool> checked(2e5 + 1);
  14. void dfs(long long s)
  15. {
  16.     if (checked[s]) return;
  17.     checked[s] = true;
  18.     if (checked[g[s][0]] && checked[g[s][1]])
  19.     {
  20.         cout << s;
  21.         return;
  22.     }
  23.     if (checked[g[s][0]])
  24.     {
  25.         cout << s << " ";
  26.         dfs(g[s][1]);
  27.         return;
  28.     }
  29.     if (checked[g[s][1]])
  30.     {
  31.         cout << s << " ";
  32.         dfs(g[s][0]);
  33.         return;
  34.     }
  35. }
  36.  
  37. int main()
  38. {
  39.     long long n;
  40.     cin >> n;
  41.     vector<pair<long long,long long>> help;
  42.     int a, b, x , y;
  43.     fi(i, 0, n)
  44.     {
  45.         cin >> a >> b;
  46.         g[a].push_back(b);
  47.         g[b].push_back(a);
  48.         if (i == 0)
  49.         {
  50.             x = a;
  51.             y = b;
  52.         }
  53.     }
  54.     cout << 1 << " ";
  55.     checked[1] = true;
  56.     if (g[1][0] == x || g[1][1] == x)
  57.     {
  58.         dfs(x);
  59.     }
  60.     else
  61.     {
  62.         dfs(y);
  63.     }
  64.    
  65.  
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement