Cod sursa(job #238661)

Utilizator perticas_catalinperticas catalin perticas_catalin Data 2 ianuarie 2009 22:00:33
Problema Zvon Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<cstdio>
#include<vector>
#include<algorithm>

using namespace std;

FILE*fin=fopen("zvon.in","r");
FILE*fout=fopen("zvon.out","w");

#define nmax 100003
vector<int> arb[nmax];
int ts[nmax],sol[nmax];
void df(int nod)
{
  int j,d=arb[nod].size(),dts=0,r=0,a;
  for(j=0;j<d;j++)
  {
    df(arb[nod][j]);
    dts++;
    ts[dts]=sol[arb[nod][j]];
  }
  sort(ts+1,ts+dts+1);
  a=1;
  for(j=d;j>=1;j--,a++)
    if(ts[j]+a>r) r=ts[j]+a;
  sol[nod]=r;
}
int main()
{
  int i,j,t,n,a,b;
  fscanf(fin,"%d",&t);
  for(i=1;i<=t;i++)
  {
    fscanf(fin,"%d",&n);
    for(j=1;j<=n;j++)
      arb[j].clear();
    for(j=1;j<n;j++)
    {
      fscanf(fin,"%d%d",&a,&b);
      arb[a].push_back(b);
    }
    df(1);
    fprintf(fout,"%d\n",sol[1]);
  }
  fclose(fin);
  fclose(fout);
  return 0;
}