Pagini recente » Cod sursa (job #590652) | Cod sursa (job #3186601) | Cod sursa (job #2629227) | Cod sursa (job #1804863) | Cod sursa (job #2678318)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("darb.in");
ofstream fout ("darb.out");
vector <int> noduri[100001];
int vizitat[100001],nmax=-1,cnt=0,nodf;
void parcurgere(int nod)
{
for(auto it: noduri[nod])
{
if(!vizitat[it])
{
vizitat[it]=1;
cnt++;
parcurgere(it);
if(cnt>nmax)
{
nmax=cnt;
nodf=it;
}
cnt--;
}
}
}
int main()
{
int n,i,x,y;
fin>>n;
for(i=1;i<n;i++)
{
fin>>x>>y;
noduri[x].push_back(y);
noduri[y].push_back(x);
}
vizitat[1]=1;
parcurgere(1);
for(i=1;i<=n;i++)
vizitat[i]=0;
vizitat[nodf]=1;
parcurgere(nodf);
cout<<nmax+1;
return 0;
}