Cod sursa(job #2246747)

Utilizator toadehuPuscasu Razvan Stefan toadehu Data 27 septembrie 2018 14:54:24
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("zvon.in");
ofstream fout("zvon.out");
int t;

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

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

    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()
{
    fin >> t;
    for(int k=1; k<=t; ++k)
    {
        citire();
        dfs(1);
        fout<<d[1]<<"\n";
    }
    return 0;
}