Cod sursa(job #116884)

Utilizator rethosPaicu Alexandru rethos Data 19 decembrie 2007 19:28:32
Problema Cerere Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <fstream.h>
#define NMAX 101
long t[NMAX],v[NMAX],x[NMAX],n;
long  det(long k)
{ long s;
  if (v[k]!=-1) return v[k];
  s=k;
  while (x[k]>0)
	{ s=t[s];
	  x[k]--;
	}
  return v[s]+1;
}
int main()
{ long i,z,y;
  ifstream f("cerere.in");
  ofstream g("cerere.out");
  f>>n;
  for (i=1;i<=n;i++) v[i]=-1;
  for (i=1;i<=n;i++) f>>x[i];
  for (i=1;i<n;i++)
	{ f>>y>>z;
	  t[z]=y;
	}
  f.close();
  for (i=1;i<=n;i++) if (x[i]==0) v[i]=0;
  for (i=1;i<=n;i++) v[i]=det(i);
  for (i=1;i<=n;i++)
	g<<v[i]<<' ';
  g.close();
  return 0;
}