Pagini recente » Cod sursa (job #2385164) | Cod sursa (job #3278433) | Cod sursa (job #703503) | Cod sursa (job #1074970) | Cod sursa (job #2179778)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
int Max=0,n,x,y;
bool viz[100003];
vector <int> G[100003];
int dfs(int poz)
{
viz[poz]=1;
int lung=0,l1=0;
for(vector <int>::iterator it=G[poz].begin();it!=G[poz].end();it++)
if(viz[*it]==0)
{
int p1=*it;
lung=dfs(p1);
if(Max<lung+l1+1)
Max=lung+l1+1;
l1=max(lung,l1);
}
return l1+1;
}
int main()
{
fin>>n;
for(int i=1;i<n;i++)
{
fin>>x>>y;
G[x].push_back(y);
G[y].push_back(x);
}
int lung=dfs(1);
fout<<Max;
return 0;
}