Pagini recente » Cod sursa (job #2725610) | Cod sursa (job #2444472) | Cod sursa (job #2596030) | Cod sursa (job #340563) | Cod sursa (job #3237629)
#include<bits/stdc++.h>
using namespace std;
ifstream F("darb.in");
ofstream G("darb.out");
#define Z 2048
int n,p=Z,i,j,m,b;
vector<vector<int> > a(100001,vector<int>());
vector<int> c(100001,0);
char s[Z];
inline char A()
{
if(p==Z)
F.read(s,Z),p=0;
return s[p++];
}
int B()
{
char c;
for(c=A();!isdigit(c);c=A());
int n=0;
for(;isdigit(c);n=n*10+c-48,c=A());
return n;
}
int C(int i)
{
int u=0,v=0,w;
for(int j:a[i])
if(!c[j]) {
if(c[j]=c[i]+1,w=C(j),w>=u)
v=u,u=w;
else if(w>=v)
v=w;
}
if(u+v+1>b)
b=u+v+1;
return 1+u;
}
int main()
{
for(n=B(),m=n-1;m--;i=B(),j=B(),a[i].push_back(j));
return C(1),G<<b,0;
}