Cod sursa(job #2165791)

Utilizator Victor24Vasiesiu Victor Victor24 Data 13 martie 2018 13:40:05
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>
#include <vector>
#include <cstring>
using namespace std;

ifstream f ("darb.in");
ofstream g ("darb.out");

int n, depth[100005], viz[100005], i, a, b, boss, ma;

vector < int > G[100005];

void dfs ( int nod )
{
    viz[nod] = 1;

    if ( depth[nod] > ma )
    {
        ma = depth[nod];
        boss = nod;
    }

    for ( auto i : G[nod] )
    {
        if ( viz[ i ] == 0 )
        {
            depth[ i ] = depth [ nod ] + 1;
            dfs ( i );
        }
    }

}

int main(){


    f>>n;

    for ( i = 2 ; i <= n; i++ )
    {
        f>>a>>b;

        G[a].push_back(b);
        G[b].push_back(a);

    }
    depth[1] = 1;
    viz[1] = 1;

    dfs( 1 );
    ma = 0;
    memset( depth, 0 , sizeof(depth) );
    memset( viz, 0 , sizeof(viz) );

    depth[boss] = 1;
    viz[boss] = 1;

    dfs(boss);

    g<<ma;

    return 0 ;
}