Pagini recente » Cod sursa (job #940826) | Cod sursa (job #407443) | Cod sursa (job #995637) | Cod sursa (job #2797195) | Cod sursa (job #2769369)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("darb.in");
ofstream fout ("darb.out");
const int maxVal = 100001;
struct nod
{
int info;
nod * urm;
}* v[maxVal];
void adaugare (int x, int y)
{
nod * t = new nod;
t -> info = y;
t -> urm = v[x];
v[x] = t;
}
void dfs (int x, int h, int &hMax, int vizitat[])
{
vizitat[x] = 1;
nod * t = v[x];
while (t)
{
if (vizitat[t -> info] == 0)
dfs (t -> info, h+1, hMax, vizitat);
t = t -> urm;
}
if (h > hMax)
hMax = h;
}
int main()
{
int n, x, y;
fin >> n;
while (fin >> x >> y)
{
adaugare (x, y);
adaugare (y, x);
}
int hMax = 0;
for (int i = 1; i <= n; i++)
{
int vizitat[maxVal] = {0};
dfs(i, 1, hMax, vizitat);
}
fout << hMax;
return 0;
}