Pagini recente » Cod sursa (job #2342788) | Cod sursa (job #78806) | Cod sursa (job #592721) | Cod sursa (job #287559) | Cod sursa (job #2503106)
#include <bits/stdc++.h>
#define NMAX 100005
using namespace std;
ifstream f ("darb.in") ;
ofstream g ("darb.out") ;
int N , x, y , NodFinal , lg[NMAX] , diametru;
vector <int> v[NMAX];
bool viz[NMAX];
void DFS (int nod)
{
int len = v[nod].size();
viz[nod] = true;
for (int i = 0 ; i < len ; ++i)
{
int vec = v[nod][i] ;
if (!viz[vec]) {
lg[vec] = lg[nod] + 1;
if (lg[vec] > diametru)
{ diametru = lg[vec];
NodFinal = vec;
}
DFS(vec);
}
}
}
int main()
{
f >> N ;
for (int i = 1 ; i <= N - 1 ; ++i)
{
f >> x >> y;
v[x].push_back(y) ;
v[y].push_back(x) ;
}
DFS(1) ;
memset(lg,0,NMAX);
memset(viz,false,NMAX);
diametru = 0;
DFS(NodFinal) ;
g << diametru + 1;
}