Pagini recente » Cod sursa (job #1060435) | Cod sursa (job #2806658) | Cod sursa (job #3252189) | Cod sursa (job #2757439) | Cod sursa (job #3293726)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("darb.in");
ofstream cout("darb.out");
vector<int>v[100005];
int dfs(int nd,int lst)
{
int ad=1,mx1=0;
for(auto i:v[nd])
{
if(i!=lst)
mx1=max(mx1,dfs(i,nd));
}
return ad+mx1;
}
int main()
{
int n,a,b;
cin>>n;
for(int i=1;i<n;i++)
{
cin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
int mx1=0,mx2=0,nd=1,lst=1;
for(auto i:v[nd])
{
if(i!=lst)
{
int nr=dfs(i,nd);
if(nr>mx1)
{
mx2=mx1;
mx1=nr;
}
else if(nr>mx2)
mx2=nr;
}
}
cout<<mx1+mx2+1;
return 0;
}