sandeep03edu

Atcoder E - A Gift From the Stars

Jun 7th, 2023
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.21 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #pragma GCC target ("avx2")
  5. #pragma GCC optimization ("O3")
  6. #pragma GCC optimization ("unroll-loops")
  7. #define ll  long long
  8. #define MOD 1000000007;
  9.  
  10. #define got cout<<"Yes\n"; return;
  11. #define got0 cout<<"Yes\n"; return 0;
  12.  
  13. #define bhak cout<<"No\n"; return;
  14. #define bhak0 cout<<"No\n"; return 0;
  15.  
  16. #define bas cout<<"\n";
  17. #define RADHE_KRISHNA ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
  18.  
  19. vector<ll> vvvvvvvvvvvvvvvvv;
  20.  
  21. void solve();
  22.  
  23. int main() {
  24.     RADHE_KRISHNA
  25.  
  26.     ll n; cin>>n;
  27.     vector<vector<ll>> vec(n);
  28.  
  29.  
  30.     for(ll i=0; i<n-1; ++i){
  31.         ll a, b; cin>>a>>b;
  32.         a--,b--;
  33.  
  34.         vec[a].push_back(b);
  35.         vec[b].push_back(a);
  36.     }
  37.  
  38.     map<ll,ll> mp;
  39.     for(ll i=0; i<n; ++i){
  40.         mp[i] = vec[i].size();
  41.     }
  42.  
  43.     queue<int> qu;
  44.     vector<bool> vis(n, 0);
  45.  
  46.     for(ll i=0; i<n; ++i){
  47.         if(mp[i]==1){
  48.             qu.push(i);
  49.             vis[i] = 1;
  50.         }
  51.     }
  52.  
  53.     vector<ll> ans;
  54.  
  55.     while(!qu.empty()){
  56.         ll sz = qu.size();
  57.  
  58.         for(ll _=0; _<sz; ++_){
  59.             ll a = qu.front();
  60.             qu.pop();
  61.  
  62.             ll par = -1;
  63.             cout<<a+1<<" ";
  64.             for(auto b : vec[a]){
  65.                 if(!vis[b]){
  66.                     par = b;
  67.                     break;
  68.                 }
  69.             }
  70.  
  71.             cout<<par+1; bas
  72.  
  73.             if(!vis[par]){
  74.                 vis[par] = 1;
  75.  
  76.                 vector<ll> v1 = vec[par];
  77.  
  78.                 for(int j=0; j<v1.size(); ++j){
  79.                     ll v = v1[j];
  80.                     vis[v] =1;
  81.  
  82.                     vector<ll> v2 = vec[v];
  83.  
  84.                     for(ll t=0; t<v2.size(); ++t){
  85.                         ll e = v2[t];
  86.                         if(!vis[e]){
  87.                             mp[e]--;
  88.                         }
  89.                     }
  90.                 }
  91.  
  92.             }
  93.  
  94.  
  95.         }
  96.  
  97.         for(ll i=0; i<n; ++i){
  98.             if(mp[i]==1 && !vis[i]){
  99.                 qu.push(i);
  100.                 vis[i] = 1;
  101.             }
  102.         }
  103.     }
  104.  
  105.     sort(ans.begin(), ans.end());
  106.  
  107.     for(auto a : ans){
  108.         cout<<a<<" ";
  109.     }
  110.     bas
  111.  
  112.     return 0;
  113. }
  114.  
Advertisement
Add Comment
Please, Sign In to add comment