Pagini recente » Cod sursa (job #2498706) | Cod sursa (job #615057) | Cod sursa (job #3312055) | Cod sursa (job #2357909) | Cod sursa (job #3309259)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
long long n, maxDist, farNode;
vector<vector<int>> adj;
void dfs_diam(int nod, int par, int dist)
{
if(dist > maxDist)
{
maxDist = dist;
farNode = nod;
}
for(int neigh : adj[nod])
{
if(par == neigh) continue;
dfs_diam(neigh, nod, dist + 1);
}
}
int tree_diam()
{
dfs_diam(1, 0, 1);
int X = farNode;
dfs_diam(X, 0, 1);
return maxDist;
}
void solve()
{
int i;
fin >> n;
adj.resize(n+1);
for(i = 1; i < n; i++)
{
int x, y;
fin >> x >> y;
adj[x].push_back(y);
adj[y].push_back(x);
}
fout << tree_diam();
return;
}
int main()
{
long long t;
solve();
return 0;
}