Pagini recente » Cod sursa (job #2553916) | Cod sursa (job #1413334) | Cod sursa (job #1069338) | Cod sursa (job #623447) | Cod sursa (job #1890308)
#include <fstream>
#include <cstring>
#include <vector>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
vector <int> ls[100005];
int viz[100005];
int n, i, x, y,maxim;
void df(int x) {
int i, l = ls[x].size(), y;
for (i = 0; i < l; i++) {
y = ls[x][i];
if (viz[y] == 0) {
viz[y] = viz[x]+1;
df(y);
}
}
}
int main() {
f >> n;
for (i = 1; i < n; i++) {
f >> x >> y;
ls[x].push_back(y);
ls[y].push_back(x);
}
df(1);
for (i = 2; i <= n; i++)
if (viz[maxim] < viz[i])
maxim = i;
memset(viz, 0,sizeof(viz));
df(maxim);
int m1 =maxim;
maxim =0;
for (i = 1; i <= n;i++)
if (viz[maxim]<viz[i]&&i!=m1)
maxim = i;
g << viz[maxim]+1;
return 0;
}