Pagini recente » Borderou de evaluare (job #1549063) | Borderou de evaluare (job #352783) | Cod sursa (job #1154905) | Borderou de evaluare (job #1510347) | Cod sursa (job #2373922)
#include <bits/stdc++.h>
using namespace std;
bool v[100005];
vector<int> graf[100005];
int startNode;
ifstream f("darb.in");
ofstream g("darb.out");
int maxDiam = -1;
int DFS(int nod, int diam)
{
v[nod] = true;
if(diam > maxDiam)
{
maxDiam = diam;
startNode = nod;
}
for (int i = 0; i < graf[nod].size(); i++)
{
if (!v[graf[nod][i]])
{
DFS(graf[nod][i], diam + 1);
}
}
}
int main()
{
int N;
f >> N;
for (int i = 0, a, b; i < N - 1; i++)
{
f >> a >> b;
graf[a].push_back(b);
graf[b].push_back(a);
}
DFS(1, 1);
int copieStart = startNode;
for(int i = 0; i < N; i++)
{
v[i] = false;
}
DFS(copieStart, 1);
g << maxDiam;
}