Cod sursa(job #204051)

Utilizator katakunaCazacu Alexandru katakuna Data 21 august 2008 16:01:55
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
struct nod{int inf;nod *urm;} *v[100011];
int N,T,t,n,i,a,b,s[100011],nr[100011];

int cmp(int a,int b){
return nr[a]>nr[b];
}

void parc(int x){
nod *q;

   for(q=v[x];q!=NULL;q=q->urm){
   parc(q->inf);
   }

nod *t;
N=0;

   for(q=v[x];q!=NULL;q=q->urm){
   N++;
   s[N]=q->inf;
   }

  if(v[x]!=NULL) sort(s+1,s+1+N,cmp);

    for(i=1;i<=N;i++){
      if(nr[x]<i+nr[s[i]])
      nr[x]=i+nr[s[i]];
    }

}


int main(){

FILE *f=fopen("zvon.in","r");
FILE *g=fopen("zvon.out","w");
fscanf(f,"%d",&T);

  for(t=1;t<=T;t++){
  fscanf(f,"%d",&n);

    for(i=1;i<n;i++){
    fscanf(f,"%d %d",&a,&b);
    nod *q= new nod;
    q->inf=b;
    q->urm=v[a];
    v[a]=q;
    }

  parc(1);
  fprintf(g,"%d\n",nr[1]);
    for(i=1;i<=n;i++){
    nr[i]=0;
    v[i]=NULL;
    }
  }

fclose(f);
fclose(g);

return 0;
}