Cod sursa(job #1587285)

Utilizator elevenstrArina Raileanu elevenstr Data 1 februarie 2016 21:53:08
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("zvon.in");
ofstream out("zvon.out");
#define MAX 100008
int test,i,j,n,t[MAX],x,y;
vector <int> v[MAX];
bool cmp(int a, int b)
{
    return t[a]>t[b];
}
void dfs(int nod)
{
    for(int i=0; i<v[nod].size(); i++)
        dfs(v[nod][i]);
    sort(v[nod].begin(),v[nod].end(),cmp);
    for(int i=0; i<v[nod].size(); i++)
        t[nod]=max(t[nod],t[v[nod][i]]+i+1);

}
int main()
{
    in>>test;
    while(test--)
    {
        in>>n;
        for(int i=1; i<=n; i++)
            v[i].clear();
        for(int i=1; i<=n; i++)
            t[i]=0;
        memset(t,0,(n+1)*sizeof(int));
        for(int i=1; i<n; i++)
        {
            in>>x>>y;
            v[x].push_back(y);
        }
        dfs(1);
        out<<t[1]<<'\n';
    }


    return 0;
}