Cod sursa(job #1883211)

Utilizator AndreiDumitrescuAndrei Dumitrescu AndreiDumitrescu Data 17 februarie 2017 20:07:33
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>

using namespace std;

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

int t[100001], n;

vector <int> v[100001];

bool cmp(int x, int y)
{
    return t[x] > t[y];
}

int DFS(int elem)
{
    int i;
    for(i = 0 ; i < v[elem].size(); i++)
    {
        int y;
        y = v[elem][i];
        DFS(y);
    }
    sort(v[elem].begin(), v[elem].end(), cmp);
    t[elem] = 0;
    for(i = 0; i < v[elem].size(); i++)
    {
        int y;
        y = v[elem][i];
        t[elem] = max(t[elem], i + 1 + t[y]);
    }
}


int main()
{
    int test;
    f >> test;

    while(test)
    {
        f >> n;
        int i , j , a , b;
        for(i = 1 ; i < n ; i++)
        {
            f >> a >> b;
            v[a].push_back(b);
        }
        DFS(1);
        g << t[1] << '\n';
        for(i = 1 ; i <= n ; i++)
        {
            v[i].clear();
            t[i] = 0;
        }
        test--;
    }

}