Pagini recente » Istoria paginii utilizator/deliabiancasci | Cod sursa (job #127576) | Cod sursa (job #3136278) | Cod sursa (job #2491279) | Cod sursa (job #1567479)
#include <iostream>
#include <fstream>
#include <vector>
#define nmax 100001
using namespace std;
int n, maximumDepth, auxNode;
bool viz[nmax];
vector <int> ARB[nmax];
void dfs(int nod, int depth)
{
viz[nod] = true;
if (depth > maximumDepth)
{
maximumDepth = depth;
auxNode = nod;
}
for (int i = 0; i < ARB[nod].size(); i++)
if (!viz[ARB[nod][i]])
dfs(ARB[nod][i], depth+1);
}
void init()
{
for (int i = 1; i <= n; i++)
viz[i] = false;
}
int main()
{
ifstream fi("darb.in");
ofstream fo("darb.out");
fi >> n;
for (int i = 1; i <= n; i++)
{
int a, b;
fi >> a >> b;
ARB[a].push_back(b);
ARB[b].push_back(a);
}
dfs(1, 1);
maximumDepth = 0;
init();
dfs(auxNode, 1);
fo << maximumDepth << "\n";
fi.close();
fo.close();
return 0;
}