Pagini recente » Cod sursa (job #2122421) | Cod sursa (job #2433171) | Cod sursa (job #2173203) | Cod sursa (job #1788585) | Cod sursa (job #2983212)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
vector<int> G[100005];
vector<int> d(100005);
void bfs(int k) {
queue<int> Q;
vector<int> viz(100005);
Q.push(k);
viz[k] = 1;
d[k] = 1;
while (!Q.empty()) {
int act = Q.front();
Q.pop();
for (auto i : G[act]) {
if (viz[i] == 0) {
Q.push(i);
viz[i] = 1;
d[i] = d[act] + 1;
}
}
}
}
int main() {
int n;
fin >> n;
int x, y;
for (int i = 1; i <= n - 1; i++) {
fin >> x >> y;
G[x].push_back(y);
G[y].push_back(x);
}
bfs(1);
int maxi = -1;
int start=1;
for (int i = 1; i <= n; i++) {
//cout << d[i]<<' ';
if (maxi < d[i]) {
maxi = d[i];
start = i;
}
}
//cout << start << '\n';
bfs(start);
maxi = -1;
for (int i = 1; i <= n; i++) {
maxi = max(maxi, d[i]);
}
fout << maxi;
}