Advertisement
Saleh127

CSES 1674 / DFS

Apr 8th, 2022
830
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. /***
  2.  created: 2022-04-08-12.34.03
  3. ***/
  4.  
  5. #include <bits/stdc++.h>
  6. using namespace std;
  7. #define ll long long
  8. #define test int tt; cin>>tt; for(int cs=1;cs<=tt;cs++)
  9. #define get_lost_idiot return 0
  10. #define nl '\n'
  11.  
  12. vector<ll>g[200005];
  13. ll ans[200005];
  14.  
  15. void dfs(ll in)
  16. {
  17.     ans[in]++;
  18.  
  19.     for(auto dd:g[in])
  20.     {
  21.         if(ans[dd]==0)
  22.         {
  23.             dfs(dd);
  24.             ans[in]+=ans[dd];
  25.         }
  26.     }
  27. }
  28.  
  29. int main()
  30. {
  31.     ios_base::sync_with_stdio(0);
  32.     cin.tie(0);
  33.     cout.tie(0);
  34.  
  35.     ll n,m,i,j,k,l;
  36.  
  37.     cin>>n;
  38.  
  39.     for(i=2;i<=n;i++)
  40.     {
  41.         cin>>k;
  42.         g[k].push_back(i);
  43.     }
  44.  
  45.  
  46.     for(i=1;i<=n;i++)
  47.     {
  48.         if(ans[i]==0)
  49.         {
  50.             dfs(i);
  51.         }
  52.     }
  53.  
  54.     for(i=1;i<=n;i++)
  55.     {
  56.         cout<<ans[i]-1<<" ";
  57.     }
  58.  
  59.     cout<<nl;
  60.  
  61.     get_lost_idiot;
  62. }
  63.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement