Pagini recente » Cod sursa (job #1819630) | Cod sursa (job #1785304) | Cod sursa (job #643625) | Cod sursa (job #2503897) | Cod sursa (job #2189419)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
const int nmax = 100005;
bool viz[nmax];
vector<int> ls[nmax];
int n, x, y, i, niv[nmax], maxim, pmax;
void dfs(int x) {
int l = ls[x].size(), i, y;
viz[x] = 1;
for (i = 0; i < l; i++) {
y = ls[x][i];
if (viz[y]) continue;
niv[y] = niv[x]+1;
dfs(y);
}
}
int main() {
f >> n;
for (i = 1; i < n; i++) {
f >> x >> y;
ls[x].push_back(y);
ls[y].push_back(x);
}
dfs(1);
for (i = 1; i <= n; i++)
if (niv[i] > maxim)
maxim = niv[i], pmax = i;
for (i = 1; i <= n; i++)
niv[i] = viz[i] = 0;
niv[pmax] = 1;
dfs(pmax);
maxim = 0;
for (i = 1; i <= n; i++)
if (niv[i] > maxim)
maxim = niv[i], pmax = i;
g << maxim;
return 0;
}