Pagini recente » Cod sursa (job #511606) | Cod sursa (job #429603) | Cod sursa (job #726910) | Cod sursa (job #1975989) | Cod sursa (job #3262510)
#include <vector>
#include <iostream>
#include <fstream>
using namespace std;
int n, root = 1, a, b;
vector<vector<int> > graph;
vector<int> dist;
void dfs (int parent, int node) {
if (dist[node] > dist[root])
root = node;
for (int i = 0; i < (int) graph[node].size(); i++) {
int nxt = graph[node][i];
if(nxt == parent) {
continue;
}
dist[nxt] = dist[node] + 1;
dfs(node, nxt);
}
}
int main() {
freopen("darb.in" , "r" , stdin);
freopen("darb.out" , "w" , stdout);
cin >> n;
graph.resize(n+1);
dist.resize(n+1);
for(int i = 1; i < n; i++) {
cin >> a >> b;
graph[a].push_back(b);
graph[b].push_back(a);
}
dfs(0, root);
dist[root] = 0;
dfs(0, root);
cout << dist[root]+1 << '\n';
return 0;
}