Pagini recente » Cod sursa (job #1412363) | Cod sursa (job #807023) | Cod sursa (job #2503972) | Cod sursa (job #3165398) | Cod sursa (job #1632410)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
vector<vector<int> > G;
int N, capat, iCapat;
void dfs(int nod, int d, int prec)
{
if(d > capat){
capat = d;
iCapat = nod;
}
for(int i=0; i<G[nod].size(); ++i)
if(G[nod][i] != prec)
dfs(G[nod][i], d+1, nod);
}
int main()
{
freopen("darb.in", "rt", stdin);
freopen("darb.out", "wt", stdout);
scanf("%d", &N);
G.assign(N+1, vector<int>());
int x, y;
for(int i=1; i<N; ++i){
scanf("%d%d", &x, &y);
G[x].push_back(y);
G[y].push_back(x);
}
dfs(1, 1, -1);
dfs(iCapat, 1, -1);
cout<<capat<<'\n';
return 0;
}