Pagini recente » Cod sursa (job #1177820) | Cod sursa (job #1056974) | Cod sursa (job #2914872) | Cod sursa (job #3166490) | Cod sursa (job #1261504)
#include<cstdio>
#include<vector>
using namespace std;
int n,i,x,y,sol,d[100002];
bool sel[100002];
vector<int> g[100002];
void dfs(int nod)
{
int mx,my;
mx=my=0;
sel[nod]=true;
vector<int>::iterator it;
for(it=g[nod].begin();it!=g[nod].end();it++)
{
if(!sel[*it])
{
dfs(*it);
if(d[*it]>mx)
{
my=mx;
mx=d[*it];
}
else if(d[*it]>my)
{
my=d[*it];
}
}
}
d[nod]=++mx;
if(mx+my>sol)
{
sol=mx+my;
}
}
int main()
{
freopen("darb.in","r",stdin);
freopen("darb.out","w",stdout);
scanf("%d",&n);
for(i=1;i<n;i++)
{
scanf("%d%d",&x,&y);
g[y].push_back(x);
g[x].push_back(y);
}
dfs(1);
printf("%d\n",sol);
}