Cod sursa(job #1888442)

Utilizator danysilas23Silas Daniel danysilas23 Data 22 februarie 2017 09:24:54
Problema Zvon Scor 100
Compilator cpp Status done
Runda becreative20 Marime 1 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--;
    }
}