Pagini recente » Cod sursa (job #495570) | Cod sursa (job #571896) | Cod sursa (job #1507631) | Cod sursa (job #2259318) | Cod sursa (job #2574387)
#include <bits/stdc++.h>
using namespace std;
ifstream in;
ofstream out;
vector<vector<int>> edge;
vector<int> visited;
int n,max1,far;
void create()
{
in >> n;
edge.resize(n + 2);
visited.resize(n + 2);
for (int i = 1; i < n; i++)
{
int x, y;
in >> x >> y;
edge[x].push_back(y);
edge[y].push_back(x);
}
}
void DFS(int start)
{
if (visited[start] > max1)
{
max1 = visited[start];
far = start;
}
for(int i=0;i<edge[start].size();i++)
if (!visited[edge[start][i]])
{
visited[edge[start][i]] = visited[start] + 1;
DFS(edge[start][i]);
}
}
int main()
{
in.open("darb.in");
out.open("darb.out");
create();
visited[1] = 1;
DFS(1);
visited.clear();
visited.resize(n + 2);
visited[far] = 1;
DFS(far);
out << max1;
}