Pagini recente » Cod sursa (job #1799592) | Cod sursa (job #2186267) | Cod sursa (job #272790) | Cod sursa (job #1927503) | Cod sursa (job #2695189)
#include <fstream>
#include <vector>
#define N 100005
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
int maxDepthNode, maxDistance;
vector <int> graf[N];
vector <bool> viz;
void dfs(int start, int diameter) {
viz[start] = true;
if(diameter > maxDistance) {
maxDistance = diameter;
maxDepthNode = start;
}
for(auto node : graf[start]) {
if(!viz[node]) {
dfs(node, diameter + 1);
}
}
}
int main() {
int n;
fin >> n;
viz.resize(n + 1);
for(int i = 1; i <= n - 1; i++) {
int a, b;
fin >> a >> b;
graf[a].push_back(b);
graf[b].push_back(a);
}
dfs(1, 0);
fill(viz.begin(), viz.end(), 0);
dfs(maxDepthNode, 0);
fout << maxDistance + 1;
}