Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<algorithm>
- #include<math.h>
- #include<vector>
- #include<string>
- #include<fstream>
- using namespace std;
- #define watch(x) cout << (#x) << " is " << (x) << endl
- #define fi(i, a, c) for (long long i = a; i < c; i++)
- vector<vector<long long>> g(2e5 + 1);
- vector<bool> checked(2e5 + 1);
- void dfs(long long s)
- {
- if (checked[s]) return;
- checked[s] = true;
- if (checked[g[s][0]] && checked[g[s][1]])
- {
- cout << s;
- return;
- }
- if (checked[g[s][0]])
- {
- cout << s << " ";
- dfs(g[s][1]);
- return;
- }
- if (checked[g[s][1]])
- {
- cout << s << " ";
- dfs(g[s][0]);
- return;
- }
- }
- int main()
- {
- long long n;
- cin >> n;
- vector<pair<long long,long long>> help;
- int a, b, x , y;
- fi(i, 0, n)
- {
- cin >> a >> b;
- g[a].push_back(b);
- g[b].push_back(a);
- if (i == 0)
- {
- x = a;
- y = b;
- }
- }
- cout << 1 << " ";
- checked[1] = true;
- if (g[1][0] == x || g[1][1] == x)
- {
- dfs(x);
- }
- else
- {
- dfs(y);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement