Cod sursa(job #2704632)

Utilizator nubnubMeh Neh nubnub Data 10 februarie 2021 21:12:35
Problema Zvon Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <cstdio>
#include <vector>
#include <queue>

#define maxN 100001

using namespace std;

vector <int> V[maxN];
int T;
int N;
int Ti[maxN];

void df(int nod)
{
    int i, n;
    n = V[nod].size();
    for(i=0; i<n; ++i)
        df(V[nod][i]);
    priority_queue <int> q;
    for(i=0; i<n; ++i)
        q.push(Ti[V[nod][i]]);
    int j = 1, k;
    while(q.empty() == false)
	{
        k = q.top();
        q.pop();
        if(k + j > Ti[nod])
            Ti[nod] = k + j;
        ++ j;
    }
    V[nod].clear();
}

int main()
{
    freopen("zvon.in", "rt", stdin);
    freopen("zvon.out", "wt", stdout);
    int i, a, b;
    for(scanf("%d", &T); T; --T)
    {
        for(scanf("%d", &N), i=1; i<N; ++i)
        {
            scanf("%d %d", &a, &b);
            V[a].push_back(b);
            ++ Ti[a];
        }
        df(1);
        printf("%d\n", Ti[1]);
        for(i=1; i<=N; ++i)
            Ti[i] = 0;
    }
    return 0;
}