Cod sursa(job #1225802)

Utilizator SteveStefan Eniceicu Steve Data 3 septembrie 2014 17:08:37
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#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;
}