Pagini recente » Monitorul de evaluare | Cod sursa (job #1511232) | Cod sursa (job #3127966) | Cod sursa (job #1496687) | Cod sursa (job #2460839)
#include <bits/stdc++.h>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
const int N = 100010;
vector <int> L[N];
int n, diametru, capat, l, niv[N];
void dfs(int);
int main()
{
f >> n;
for(int i=1; i<=n; i++)
{
int x, y;
f >> x >> y;
L[x].push_back(y);
L[y].push_back(x);
}
niv[1]=1;
dfs(1);
diametru = 0;
fill(niv + 1, niv + n + 1, 0);
niv[capat]=1;
dfs(capat);
g << diametru;
return 0;
}
void dfs(int nod)
{
for(auto it: L[nod])
{
if(!niv[it])
{
niv[it] = niv[nod] + 1;
if(niv[it] > diametru)
{
diametru = niv[it];
capat = it;
}
dfs(it);
}
}
}