Cod sursa(job #2560761)

Utilizator Anastasia11Susciuc Anastasia Anastasia11 Data 28 februarie 2020 11:25:38
Problema Zvon Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <vector>
#include <cstring>
#include <algorithm>
#define Nmax 100005

using namespace std;

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

vector <int> v[Nmax];

int t;
int n, a, b;
int d[Nmax];

bool cmp(int a, int b)
{
    return d[a]>d[b];
}

void dfs(int x)
{
    for ( int j = 0, l=v[x].size(); j < l; j ++ )
        dfs(v[x][j]);

    sort(v[x].begin(), v[x].end(), cmp);

    for ( int i = 0, l=v[x].size(); i < l; i ++ )
    {
        int y=v[x][i];
        d[x]=max(d[x], d[y]+i+1);
    }

}

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

    return 0;
}