Pagini recente » Cod sursa (job #3221975) | Cod sursa (job #2451408) | Cod sursa (job #309081) | Cod sursa (job #646208) | Cod sursa (job #2640782)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
vector <int> edgesList[100001];
bitset <100001> reached;
int maxx, last;
void addEdge(int v, int w) {
edgesList[v].push_back(w);
edgesList[w].push_back(v);
}
void dfs(int current, int sum) {
for (int i = 0; i < edgesList[current].size(); i++)
if (!reached[edgesList[current][i]]) {
reached[edgesList[current][i]] = 1;
dfs(edgesList[current][i], sum + 1);
}
if (sum > maxx) {
maxx = sum;
last = current;
}
}
int main() {
int numOfVertices, v, w, root = -1;
fin >> numOfVertices;
for (int i = 1; i < numOfVertices; i++) {
fin >> v >> w;
addEdge(v, w);
}
dfs(1, 1);
maxx = 0;
reached.reset();
dfs(last, 1);
fout << maxx;
return 0;
}