Cod sursa(job #2099118)

Utilizator infomaxInfomax infomax Data 3 ianuarie 2018 23:43:02
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <bits/stdc++.h>

using namespace std;

ifstream F("zvon.in");
ofstream G("zvon.out");

int n, x, y, T;
vector<int> f[100005];

int sol(int x)
{
    int k = 0, ans = 0;
    if( !f[x].size() ) return ans;
    vector<int> :: iterator it;
    short t[100005];
    for( it = f[x].begin(); it != f[x].end(); ++ it )
        t[++k] = sol(*it)*-1;
    sort(t+1, t+k+1);
    ans = 0;
    for(int i = k; i > 0; -- i)
    {
        t[i] *= -1;
        ans = max(ans, t[i]+i);
    }
    return ans;
}

int main()
{
    F >> T;
    while(T--)
    {
        F >> n;
        if(n == 1)
        {
            G << 0 << '\n';
            continue;
        }
        memset(f, 0, sizeof(f));
        for( int i = 1; i < n; ++ i )
            F >> x >> y, f[x].push_back(y);
        G << sol(1) << '\n';
    }
    return 0;
}