#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main(){
cin.tie(nullptr);
ios_base::sync_with_stdio(false);
int N, A, B, C, ans=0;
cin >> N;
vector<vector<int>> E(N), D(N);
for (int i=0; i<N-1; i++){
cin >> A >> B;
A--; B--;
E[A].push_back(B);
E[B].push_back(A);
}
auto dfs=[&](auto self, int from, int p, int d)->void{
if (p == 0) C=from;
if (p != -1 && E[from].size() == 1) D[C].push_back(d);
for (auto to : E[from]){
if (to == p) continue;
self(self, to, from, d+1);
}
};
dfs(dfs, 0, -1, 0);
for (int i=0; i<N; i++){
if (!D[i].empty()){
int s=0;
sort(D[i].begin(), D[i].end());
for (auto x : D[i]) s=max(s+1, x);
ans = max(ans, s);
}
}
cout << ans << endl;
return 0;
}
221. Maximal Square | 1200. Minimum Absolute Difference |
1619B - Squares and Cubes | 1619A - Square String |
1629B - GCD Arrays | 1629A - Download More RAM |
1629C - Meximum Array | 1629D - Peculiar Movie Preferences |
1629E - Grid Xor | 1629F1 - Game on Sum (Easy Version) |
2148. Count Elements With Strictly Smaller and Greater Elements | 2149. Rearrange Array Elements by Sign |
2150. Find All Lonely Numbers in the Array | 2151. Maximum Good People Based on Statements |
2144. Minimum Cost of Buying Candies With Discount | Non empty subsets |
1630A - And Matching | 1630B - Range and Partition |
1630C - Paint the Middle | 1630D - Flipping Range |
1328A - Divisibility Problem | 339A - Helpful Maths |
4A - Watermelon | 476A - Dreamoon and Stairs |
1409A - Yet Another Two Integers Problem | 977A - Wrong Subtraction |
263A - Beautiful Matrix | 180C - Letter |
151A - Soft Drinking | 1352A - Sum of Round Numbers |