Cod sursa(job #2172621)

Utilizator eduardandrei20Nechifor Eduard Andrei eduardandrei20 Data 15 martie 2018 17:10:45
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>
std::ifstream in("zvon.in");
std::ofstream out("zvon.out");
using namespace std;

const int nmax=100001;
int t;
vector<int>G[nmax];
int d[nmax];
int n;
inline void input()
{
    for(int i =1; i<=n;++i)
        G[i].clear(),d[i]=0;
    in >> n ;
    for(int i =1 ; i<=n-1; ++i)
    {
        int x,y;
        in>>x>>y;
        G[x].push_back(y);
    }
}
inline bool cmp(int i,int j)
{
    return d[i]>d[j];
}

void dfs(int node)
{
    if(!G[node].size())
    {
        d[node]=0;
        return;
    }
    for(size_t y = 0 ; y<G[node].size();++y)
        dfs(G[node][y]);
    //merg la leafff <3

    sort(G[node].begin(),G[node].end(),cmp);
    for(int k = 0 ; k<G[node].size();++k)
    {
        d[node]=max(d[node],d[G[node][k]]+k+1);
    }
}



int main()
{
    in >> t;
    for(int k=1;k<=t;++k)
    {
        input();
        dfs(1);
        out<<d[1]<<"\n";
    }

    return 0;
}