Pagini recente » Cod sursa (job #2367414) | Cod sursa (job #1431111) | Cod sursa (job #2527446) | Istoria paginii runda/mehedinti01/clasament | Cod sursa (job #2705333)
#include <bits/stdc++.h>
using namespace std;
ifstream in ("darb.in");
ofstream out ("darb.out");
bool viz[100001];
vector <int> v[100001];
int dist[100001];
void dfs (int nod , int d)
{
viz[nod] = 1;
dist[nod] = d;
for (auto i: v[nod])
if (!viz[i])
dfs(i, d+1);
}
int main ()
{
int n;
in>>n;
for (int i = 1; i<=n; ++i)
{
int a,b;
in >> a >> b;
v[a].push_back(b);
v[b].push_back(a);
}
dfs(1, 0);
int max_dist = 0;
int place = 1;
for (int i = 1;i<=n;++i)
{
if (dist[i] > max_dist)
{
max_dist = dist[i];
place = i;
}
}
max_dist = 0;
for (int i = 1;i<=n;++i)
dist[i] = viz[i] = 0;
dfs(place, 0);
for (int i = 1; i<=n; ++i)
max_dist = max (max_dist, dist[i]);
out << max_dist + 1;
return 0;
}