Pagini recente » Cod sursa (job #1156619) | Cod sursa (job #2857503) | Cod sursa (job #1939331) | Cod sursa (job #1147437) | Cod sursa (job #1996680)
#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]) {
viz[*i] = 1;
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;
}