Cod sursa(job #2777804)

Utilizator Albert_GAlbert G Albert_G Data 24 septembrie 2021 20:01:38
Problema Zvon Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <vector>
#include <algorithm>

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

const int N = 1e5+1;
std::vector<int> g[N];

int dfs(int i){
    if(g[i].empty()){
        return 0;
    }
    int nodeNmb = g[i].size();
    int time[nodeNmb],cnt=-1;
    for(auto node : g[i]){
        time[++cnt] = dfs(node);
        //out<<time[cnt]<<'\n';
    }
    std::sort(time,time+nodeNmb,std::greater<int>());
    int maxT = -N;
    for(int j=0;j<nodeNmb;++j){
        time[j] += j+1;
        maxT = std::max(maxT,time[j]);
    }
    return maxT;
}

int main()
{
    int t;
    in>>t;
    for(int i=0;i<t;++i){
        int n;
        in>>n;

        for(int j=1;j<=n;++j){
            g[j].clear();
        }

        for(int j=1;j<n;++j){
            int a,b;
            in>>a>>b;
            g[a].push_back(b);
        }
        out<<dfs(1)<<'\n';
    }
    return 0;
}