Pagini recente » Cod sursa (job #1940509) | Cod sursa (job #175146) | Cod sursa (job #2145234) | Cod sursa (job #829561) | Cod sursa (job #2525671)
#include <bits/stdc++.h>
#define NM 100005
using namespace std;
ifstream fin ("darb.in");
ofstream fout ("darb.out");
void read();
int n, d1[NM], d2[NM];
vector<int> v[NM];
void dfs1(int nod)
{
for(auto it:v[nod])
if(!d1[it])
{
d1[it] = d1[nod] + 1;
dfs1(it);
}
}
void dfs2(int nod)
{
for(auto it:v[nod])
if(!d2[it])
{
d2[it] = d2[nod] + 1;
dfs2(it);
}
}
int main()
{
read();
dfs1(1);
int maxx = d1[1], nod = 1;
for(int i=2; i<=n; ++i)
if(d1[i] > maxx)
{
maxx = d1[i];
nod = i;
}
dfs2(nod);
maxx = 0;
for(int i=1; i<=n; i++)
maxx = max(maxx, d2[i]);
fout << maxx+1;
return 0;
}
void read()
{
fin >> n;
for(int i=1; i<n; i++)
{
int x, y;
fin >> x >> y;
v[x].push_back(y);
v[y].push_back(x);
}
}