Pagini recente » Cod sursa (job #1973801) | Cod sursa (job #759696) | Cod sursa (job #3158600) | Cod sursa (job #1911205) | Cod sursa (job #2503107)
#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) ;
for (int i = 1 ; i <= N ; ++i)
{
viz[i] = false;
lg[i] = 0;
}
diametru = 0;
DFS(NodFinal) ;
g << diametru + 1;
}