fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define fastio ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
  5. #define MOD 1000000007
  6. #define ll long long int
  7.  
  8. const int N = 10005;
  9. vector<int> adj[N], vis(N);
  10. int maxD, maxNode;
  11. void dfs(int root, int d) {
  12. vis[root] = 1;
  13. if(d > maxD) {
  14. maxD = d;
  15. maxNode = root;
  16. }
  17. for(auto child : adj[root]) {
  18. if(!vis[child])
  19. dfs(child, d + 1);
  20. }
  21. }
  22.  
  23. int main() {
  24.  
  25. fastio;
  26.  
  27. int n;
  28. cin >> n;
  29.  
  30. for(int i = 0; i < n - 1; i++) {
  31. int u, v;
  32. cin >> u >> v;
  33. adj[u].push_back(v);
  34. adj[v].push_back(u);
  35. }
  36.  
  37. dfs(1, 0);
  38. maxD = 0;
  39. for(int i = 0; i < n + 1; i++) vis[i] = 0;
  40. dfs(maxNode, 0);
  41. cout << maxD;
  42.  
  43. return 0;
  44. }
  45.  
Success #stdin #stdout 0s 5628KB
stdin
3
1 2
2 3
stdout
2