Cod sursa(job #2422722)

Utilizator AndreiDeltaBalanici Andrei Daniel AndreiDelta Data 19 mai 2019 19:29:02
Problema Diametrul unui arbore Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>
#define Dim 100008
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
int D[Dim],N,a,b,max_pred,maxim;
bool viz[Dim];

vector < int > V[Dim];

void DFS(int nod)
{
    viz[nod]=1;
    bool ok=1;
    for(unsigned int i=0;i<V[nod].size();i++)
    {
        int vecin=V[nod][i];
        if(!viz[vecin])
        {
            ok=0;
            D[vecin]=D[nod]+1;
            DFS(vecin);
        }
    }
    if(ok)
    {
        if(D[nod]>maxim) maxim=D[nod];
        else
        if(D[nod]>max_pred) max_pred=D[nod];
    }
}

int main()
{
    f>>N;
    for(int i=1;i<N;i++)
    {
        f>>a>>b;
        V[a].push_back(b);
        V[b].push_back(a);
    }
    D[1]=1;
    DFS(1);
    g<<maxim+max_pred-1;

    return 0;
}