fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. void executeTime() {
  5. cerr << "Time Taken: " << (float)clock() / CLOCKS_PER_SEC << " secs";
  6. }
  7.  
  8. int main() {
  9.  
  10. int n; cin >> n;
  11.  
  12. vector<vector<int>> mp(n + 1);
  13.  
  14. for (int i = 0; i < n - 1; i++) {
  15. int u, v; cin >> u >> v;
  16.  
  17. mp[u].push_back(v);
  18. mp[v].push_back(u);
  19. }
  20.  
  21.  
  22. vector<int> dp(n + 1);
  23.  
  24. function<void(int, int)> solve = [&](int src, int p) {
  25.  
  26. dp[src] = 1;
  27.  
  28. for (auto &v : mp[src]) {
  29. if (v == p) continue;
  30.  
  31. solve(v, src);
  32. dp[src] = max(dp[src], dp[v] + 1);
  33. }
  34.  
  35. return;
  36. };
  37.  
  38. solve(1, -1);
  39.  
  40. for (int i = 1; i <= n; i++) {
  41. cout << dp[i] << endl;
  42. }
  43.  
  44. executeTime();
  45. return 0;
  46. }
Success #stdin #stdout #stderr 0s 5324KB
stdin
7
1 2
1 3
2 4
2 5
3 6
6 7
stdout
4
2
3
1
1
2
1
stderr
Time Taken: 0.004267 secs