Cod sursa(job #1766378)

Utilizator VladTiberiuMihailescu Vlad Tiberiu VladTiberiu Data 27 septembrie 2016 21:38:32
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>

#define NMax 100001
using namespace std;

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

vector<int> G[NMax];
int t,n,x,y,curent;
int dp[NMax];

bool cmp(int x,int y){
    return(dp[x] > dp[y]);
}
void dfs(int nod){
    for(int i = 0; i < G[nod].size(); ++i)
        dfs(G[nod][i]);
    sort(G[nod].begin(),G[nod].end(),cmp);

    for(int i = 0; i < G[nod].size(); ++i)
        dp[nod] = max(i + 1 + dp[G[nod][i]],dp[nod]);
}
int main()
{
    f >> t;
    while(t--){
        for(int i = 1; i <= n; ++i){
            G[i].clear();
            dp[i] = 0;
        }
        f >> n;
        for(int i = 1; i < n; ++i){
            f >> x >> y;
            G[x].push_back(y);
        }
        dfs(1);

        g << dp[1] << '\n';
    }
    return 0;
}