Cod sursa(job #1600843)

Utilizator dodecagondode cagon dodecagon Data 15 februarie 2016 14:27:32
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <stdio.h>
#include <algorithm>
#include <vector>

using namespace std;

struct list
{
    int x;
    list * next;
} * g[100009];

int t,n,i,j,k;

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



int dfs(int nod)
{
  vector <int> pq;
  for (list *p=g[nod];p;p=p->next)
      pq.push_back(dfs(p->x));
      int mx=0;
  sort(pq.begin(),pq.end(),cmp);
   for (i=0;i<pq.size();i++)
       if (mx<i+pq[i]+1) mx=i+pq[i]+1;

  return mx;
}

int main()
{
  freopen("zvon.in","r",stdin);
  freopen("zvon.out","w",stdout);
  scanf("%d",&t);
  while (t--)
  {
      scanf("%d",&n);
      for (i=0;i<n;i++)
        g[i]=NULL;
      for (i=1;i<n;i++)
      {
          scanf("%d %d",&j,&k);
          j--,k--;
          list * p = new list;
          p->next=g[j];
          p->x=k;
          g[j]=p;
      }
      printf("%d \n",dfs(0));
  }

    return 0;
}