Cod sursa(job #2005640)

Utilizator victoreVictor Popa victore Data 27 iulie 2017 18:12:51
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include<cstdio>
#include<vector>
#include<algorithm>

using namespace std;

const int nmax=1e5+5;

vector<int> g[nmax];
int n,m;

inline bool cmp(int a,int b)
{
    return a>b;
}

inline int dfs(int node)
{
    if(g[node].size())
    {
        int i,top=g[node].size(),val[top+3],currnode;
        for(i=0;i<top;++i)
        {
            currnode=g[node][i];
            val[i+1]=dfs(currnode);
        }
        sort(val+1,val+top+1,cmp);
        int maxim=val[1]+1;
        for(i=2;i<=top;++i)
            if(val[i]+i>maxim)
                maxim=val[i]+i;
        return maxim;
    }
    else
        return 0;

}

int main()
{
    freopen("zvon.in","r",stdin);
    freopen("zvon.out","w",stdout);
    int tests;
    scanf("%d",&tests);
    while(tests--)
    {
        scanf("%d",&n);
        int i;
        for(i=1;i<=n;++i)
            g[i].clear();
        for(i=1;i<n;++i)
        {
            int x,y;
            scanf("%d%d",&x,&y);
            g[x].push_back(y);
        }
        printf("%d\n",dfs(1));
    }
}