Pagini recente » Monitorul de evaluare | Registru diplome | Cod sursa (job #28805) | Cod sursa (job #2584713) | Cod sursa (job #1225802)
#include <fstream>
#include <vector>
#include <cstring>
using namespace std;
int N, maxdist, maxnod = 1;
vector <int> muchii[100011];
int viz[100011];
void DFS (int nod, int dist1)
{
if (dist1 > maxdist)
{
maxdist = dist1;
maxnod = nod;
}
viz[nod] = 1;
for (int i = 0; i < muchii[nod].size (); i++)
if (!viz[muchii[nod][i]]) DFS (muchii[nod][i], dist1 + 1);
}
int main ()
{
ifstream fin ("darb.in");
ofstream fout ("darb.out");
fin >> N;
for (int i = 1, a, b; i < N; i++)
{
fin >> a >> b;
muchii[a].push_back (b);
muchii[b].push_back (a);
}
DFS (1, 0);
memset (viz, 0, sizeof (viz));
DFS (maxnod, 0);
fout << maxdist + 1;
}