Pagini recente » Borderou de evaluare (job #2557633) | Viata de dupa olimpiade (II) - Industria de tehnologie | Cod sursa (job #1996682)
#include <fstream>
#include <vector>
using namespace std;
ifstream in ("darb.in");
ofstream out ("darb.out");
vector <int> L[100001];
int n, nivMax, nodMax, viz[100001];
void DFS (int nod, int niv) {
viz[nod] = 1;
if (niv > nivMax) {
nivMax = niv;
nodMax = nod;
}
for (vector <int> :: iterator i = L[nod].begin(); i != L[nod].end(); i++)
if (!viz[*i])
DFS(*i, niv + 1);
}
int main() {
in >> n;
for (int i = 1, x, y; i < n; i++) {
in >> x >> y;
L[x].push_back(y);
L[y].push_back(x);
}
DFS(1, 0);
for (int i = 1; i < 100001; i++) viz[i] = 0;
DFS(nodMax, 0);
out << nivMax + 1 << '\n';
out.close(); return 0;
}