Pagini recente » Cod sursa (job #1856625) | Cod sursa (job #2226139) | Cod sursa (job #1627391) | Cod sursa (job #470207) | Cod sursa (job #2673155)
#include <fstream>
#include <vector>
const int nmax = 1e5 + 5;
int h[nmax];
std::vector<int>l[nmax];
void dfs(int node, int father){
h[node] = h[father] + 1;
for (int x : l[node])
if (x != father) dfs(x, node);
}
int main() {
std::ifstream fin("darb.in");
std::ofstream fout("darb.out");
int n, u, v;
fin >> n;
for (int i = 1; i < n; i++) {
fin >> u >> v;
l[u].push_back(v);
l[v].push_back(u);
}
dfs(1, 0);
int mx = 0, nod;
for (int i = 1; i <= n; i++)
if (h[i] > mx) mx = h[i], nod = i;
h[nod] = 1, mx = 0;
dfs(nod, 0);
for (int i = 1; i <= n; i++)
if (h[i] > mx) mx = h[i];
fout << mx;
}