Pagini recente » Cod sursa (job #1599139) | Cod sursa (job #759710) | Cod sursa (job #1995054) | Cod sursa (job #1408305) | Cod sursa (job #2670677)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
bool notfr[100002];
int d[100002];
int t[100002];
int DIST(int i)
{
if(d[i] == 0 && t[i] != 0)
d[i] = DIST(t[i]) + 1;
return d[i];
}
int main()
{
int n, x, y, max1 = -1, max2 = -1;
fin >> n;
for(int i = 1; i < n; i++)
{
fin >> x >> y;
t[y] = x;
notfr[x] = true;
}
for(int i = 1; i <= n; i++)
{
int dist = DIST(i);
if(!notfr[i])
{
if(dist > max1)
{
max2 = max1;
max1 = dist;
}
else if(dist > max2)
max2 = dist;
}
}
fout << max1 + max2 + 1;
return 0;
}