Cod sursa(job #1247410)

Utilizator AdrianaMAdriana Moisil AdrianaM Data 22 octombrie 2014 19:13:39
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#include <vector>
#include <bitset>
using namespace std;

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

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

void DF(int k, int d, int q);

int main()
{
    is >> n;
    g.resize(n + 1);
    for ( int i = 1; i < n; ++i )
    {
        is >> a >> b;
        g[a].push_back(b);
        g[b].push_back(a);
    }
    DF(1, 0, 1);
    DF(nod, 0, 0);
    os << answ + 1;
    os.close();
    is.close();
    return 0;
}

void DF(int k, int d, int q)
{
    ok[k] = 1 * q;
    if ( d > answ )
    {
        answ = d;
        nod = k;
    }
    for ( auto i : g[k] )
        if ( ok[i] != 1 * q )
            DF(i, d + 1, q);
}