Pagini recente » Cod sursa (job #1451547) | Cod sursa (job #489255) | Cod sursa (job #2489720) | Cod sursa (job #858625) | Cod sursa (job #2922642)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("darb.in");
ofstream fout ("darb.out");
const int NM = 1e5 + 5;
int d[NM], n;
vector<int>g[NM];
int main(){
fin >> n;
for (int i = 0; i < n - 1; i++){
int x, y; fin >> x >> y;
g[x].push_back(y);
g[y].push_back(x);
}
queue<int>q;
d[1] = 1;
q.push(1);
while (!q.empty()){
int k = q.front();
q.pop();
for (int u : g[k]){
if (d[u] == 0){
d[u] = d[k] + 1;
q.push(u);
}
}
}
int mx = 0, e = 1;
for (int i = 1; i <= n; i++){
if (d[i] > mx){
mx = d[i];
e = i;
}
}
memset(d, 0, sizeof(d));
d[e] = 1;
q.push(e);
while (!q.empty()){
int k = q.front();
q.pop();
for (int u : g[k]){
if (d[u] == 0){
d[u] = d[k] + 1;
q.push(u);
}
}
}
fout << *max_element(d + 1, d + n + 1);
}