Cod sursa(job #2148856)

Utilizator CozmaCatalinCozma Catalin CozmaCatalin Data 2 martie 2018 08:35:12
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <bits/stdc++.h>

using namespace std;

const int MAX = 100005;

vector < int > myVector[MAX];
int Cost[MAX];

int T,N;

inline void scanData()
{
    scanf("%d", &N);
    for ( int i = 1; i <= N ; ++i)
        {
            myVector[i].clear();
            Cost[i] = 0;
        }
    for ( int i = 1; i <= N-1 ; ++i)
    {
        int x,y;
        scanf("%d%d", &x,&y);
        myVector[x].push_back(y);
    }
}

inline bool CMP(int a, int b)
{
    return Cost[a] > Cost[b];
}

void DFS(int nod)
{

    for ( auto x : myVector[nod])
       DFS(x);

       if(myVector[nod].size())
       {
           sort(myVector[nod].begin() , myVector[nod].end() , CMP);

          for(int k = 0 ; k < myVector[nod].size() ; ++k)
           Cost[nod] = max(Cost[nod] , Cost[myVector[nod][k]] +k + 1);
       }
}

int main()
{
    freopen("zvon.in", "r" ,stdin);
    freopen("zvon.out" , "w" ,stdout);

    scanf("%d", &T);
    for ( int i = 1; i <= T ; ++i)
    {
        scanData();
        DFS(1);
        printf("%d\n", Cost[1]);

    }

}