Cod sursa(job #2556463)

Utilizator PatriciaCretoiuCretoiu Patricia PatriciaCretoiu Data 24 februarie 2020 21:51:43
Problema Zvon Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <bits/stdc++.h>

using namespace std;

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

const int N=1e5+5;
vector<int>G[N];
int t, n, i, a, b;
int d[N];

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

void dfs(int nod)
{
    if(G[nod].size() == 0)
        d[nod] = 0;

    vector<int>:: iterator it;
    for(it=G[nod].begin(); it<G[nod].end(); it++)
        dfs(*it);

    sort(G[nod].begin(), G[nod].end(), cmp);

    for(int i=0; i<G[nod].size(); i++)
        d[nod] = max(d[nod], d[G[nod][i]]+i+1);
}

int main()
{
    in >> t;
    while(t--)
    {
        in >> n;

        for(i=1; i<=n; i++)
        {
            G[i].clear();
            d[i] = 0;
        }

        for(i=1; i<n; i++)
        {
            in >> a >> b;
            G[a].push_back(b);
        }

        dfs(1);

        out << d[1] << '\n';
    }
    return 0;
}