Pagini recente » Cod sursa (job #1633667) | Cod sursa (job #928327) | Cod sursa (job #1598733) | Cod sursa (job #2044207) | Cod sursa (job #2869401)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("darb.in");
ofstream fout ("darb.out");
int n,i,j,cate[100005],best,maxi,viz[100005],x,y,nou,viz2[100005];
vector <int> liste[100005];
void dfs(int nod, int dist)
{
viz[nod]=1;
if(dist>maxi)
{
best=nod;
maxi=dist;
}
for(int i=0;i<=cate[nod]-1;i++)
{
nou=liste[nod][i];
if(viz[nou]==0)
{
dfs(nou,dist+1);
}
}
}
void dfs2(int nod, int dist)
{
viz2[nod]=1;
maxi=max(maxi,dist);
for(int i=0;i<=cate[nod]-1;i++)
{
nou=liste[nod][i];
if(viz2[nou]==0)
{
dfs2(nou,dist+1);
}
}
}
int main()
{
fin>>n;
while(fin>>x>>y)
{
liste[x].push_back(y);
liste[y].push_back(x);
cate[x]++;cate[y]++;
}
dfs(1,0);
maxi=0;
dfs2(best,0);
fout<<maxi+1;
return 0;
}