Pagini recente » Istoria paginii runda/fefeqjowjcf/clasament | Cod sursa (job #1285353) | Cod sursa (job #1489558) | Cod sursa (job #2860714) | Cod sursa (job #2133196)
#include<fstream>
#include<vector>
using namespace std;
ifstream in ("darb.in");
ofstream out ("darb.out");
int d[100001],far,n,x,y;
int coada[100001];
vector<int>v[100001];
void bfs (int nod) {
coada[1] = nod;
d[nod] = 1;
for (int st = 1, dr = 1; st <= dr; st ++) {
int knot = coada[st];
for (int i = 0; i < v[knot].size(); i ++) {
int vecin = v[knot][i];
if (d[vecin] == 0) {
d[vecin] = d[knot]+1;
coada[++dr] = vecin;
}
}
}
return;
}
int main (void) {
in >> n;
for (int i = 1; i <= n - 1; i ++) {
in >> x >> y;
v[x].push_back (y);
v[y].push_back (x);
}
bfs (1);
for (int i = 1; i <= n; i ++) {
if (d[i] > d[far]) {
far = i;
}
}
for (int i = 1; i <= n; i ++) {
d[i] = 0;
}
bfs (far);
far = 0;
for (int i = 1; i <= n; i ++) {
if (d[i] > d[far]) {
far = i;
}
}
out << d[far];
return 0;
}