Advertisement
iletavcioski

Rekonstrukcija

Mar 1st, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.88 KB | None | 0 0
  1. #include<iostream>
  2. #include<vector>
  3. #include<algorithm>
  4. using namespace std;
  5. vector<vector<int> >v;
  6. vector<bool> visited(100006,false);
  7. vector<int> v1;
  8. void dfs(int x)
  9. {
  10.     if(visited[x])
  11.         return;
  12.     visited[x]=true;
  13.     v1.push_back(x);
  14.     for(int i=0;i<v[x].size();i++)
  15.     {
  16.         dfs(v[x][i]);
  17.     }
  18. }
  19. int main()
  20. {
  21.     int n;
  22.     cin>>n;
  23.     vector<int> vec;
  24.     v.insert(v.begin(),n+1,vec);
  25.     for(int i=0;i<n-1;i++)
  26.     {
  27.         int a,b;
  28.         cin>>a>>b;
  29.         v[a].push_back(b);
  30.         v[b].push_back(a);
  31.     }
  32.     dfs(0);
  33.     vector<int> vk;
  34.     for(int i=0;i<v1.size();i++)
  35.     vk.push_back(v1[i]);
  36.     v1.clear();
  37.     dfs(n);
  38.     reverse(v1.begin(),v1.end());
  39.     for(int i=0;i<v1.size();i++)
  40.     vk.push_back(v1[i]);
  41.     cout<<vk[0];
  42.     for(int i=1;i<vk.size();i++)
  43.         cout<<" "<<vk[i];
  44.     cout<<endl;
  45.     return 0;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement