Pagini recente » infoarena - comunitate informatica, concursuri de programare | Cod sursa (job #715501) | Cod sursa (job #3225378) | Cod sursa (job #917082) | Cod sursa (job #2204992)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
vector<int> v[100001];
int N, nodmax, maxlg;
bool viz[100001];
void DFS(int x, int lg)
{
viz[x] = 1;
if(maxlg < lg)
{
maxlg = lg;
nodmax = x;
}
for(unsigned int i = 0; i < v[x].size(); i++)
if(viz[v[x][i]] == 0)
DFS(v[x][i], lg + 1);
}
int main()
{
int x,y;
f >> N;
for(int i = 1; i < N; i++)
{
f >> x >> y;
v[x].push_back(y);
v[y].push_back(x);
}
DFS(1,1);
for(int i=1;i<=N;i++)
viz[i]=0;
maxlg=0;
DFS(nodmax,1);
g<<maxlg;
return 0;
}