Pagini recente » Cod sursa (job #2894922) | Cod sursa (job #1458363) | Cod sursa (job #59698) | Cod sursa (job #2243147) | Cod sursa (job #2502300)
#include <bits/stdc++.h>
#define NMAX 100001
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
int n, a, b, viz[NMAX], maxim = -1, nmax;
vector<set<int>> m;
set<int> temp;
void DFS(int nod, int dist) {
viz[nod] = dist;
if (viz[nod] > maxim) {
maxim = viz[nod];
nmax = nod;
}
for (int i = 1; i <= n; i++)
if (m[nod].find(i) != m[nod].end() && viz[i] == 0)
DFS(i, dist + 1);
}
int main() {
int i;
fin >> n;
for (i = 1; i <= n+1; i++)
m.push_back(temp);
for (i = 1; i <= n - 1; i++) {
fin >> a >> b;
m[a].insert(b);
m[b].insert(a);
}
DFS(1, 1);
for (i = 1; i <= n; i++)
viz[i] = 0;
maxim = -1;
DFS(nmax, 1);
fout << maxim;
return 0;
}