#include using namespace std; int main(){ int N; cin >> N; vector> E(N); for (int i = 0; i < N - 1; i++){ int a, b; cin >> a >> b; a--; b--; E[a].push_back(b); E[b].push_back(a); } vector d1(N, -1); d1[0] = 0; queue Q1; Q1.push(0); while (!Q1.empty()){ int v = Q1.front(); Q1.pop(); for (int w : E[v]){ if (d1[w] == -1){ d1[w] = d1[v] + 1; Q1.push(w); } } } int s = 0; for (int i = 0; i < N; i++){ if (d1[i] > d1[s]){ s = i; } } vector d2(N, -1); d2[s] = 0; queue Q2; Q2.push(s); while (!Q2.empty()){ int v = Q2.front(); Q2.pop(); for (int w : E[v]){ if (d2[w] == -1){ d2[w] = d2[v] + 1; Q2.push(w); } } } int mx = 0; for (int i = 0; i < N; i++){ mx = max(mx, d2[i]); } cout << N - 1 - mx << endl; }