Cod sursa(job #1491464)

Utilizator AdrianaMAdriana Moisil AdrianaM Data 25 septembrie 2015 15:47:31
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#include <vector>
#include <bitset>
#define INF 0x3f3f3f3f
using namespace std;

ifstream is("darb.in");
ofstream os("darb.out");

int n, a, b, rad, answ;
bitset<100001> ok;
vector<vector<int>> g;

void DF(int nod, int k);

int main()
{
    is >> n;
    g = vector<vector<int>>(n + 1);
    for ( int i = 1; i < n; ++i )
    {
        is >> a >> b;
        g[a].push_back(b);
        g[b].push_back(a);
    }
    DF(1, 1);
    ok.reset();
    DF(rad, 1);
    os << answ << "\n";
    is.close();
    os.close();
    return 0;
}

void DF(int nod, int k)
{
    ok[nod] = 1;
    if ( k > answ )
    {
        answ = k;
        rad = nod;
    }
    for ( const auto& nodv : g[nod] )
        if ( !ok[nodv] )
            DF(nodv, k + 1);
}