Cod sursa(job #350004)

Utilizator miticaMitica mitica Data 22 septembrie 2009 10:03:45
Problema Cerere Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <stdio.h>

int i,j,p,n,k[1000],t[1000],q[1000],x,y;

int main()
{
 freopen("cerere.in","r",stdin);
 freopen("cerere.out","w",stdout);
 scanf("%d", &n);
 for (i=1;i<=n;i++)
	scanf("%d", &k[i]);
 for (i=1;i<n;i++)
	{
	 scanf("%d %d", &x, &y);
	 t[y]=x;
	}
 for (i=1;i<=n;i++)
	if (k[i]!=0)
	 {
	  x=y=0;
	  j=i;
	  p=k[i];
	  while (t[j]!=0 && k[j]!=0)
		{
		 j=t[j];
		 x++;
		 if (x%p==0) { y++; x=0; p=k[j]; }
		}
	  q[i]=y;
	 }
 for (i=1;i<=n;i++)
	printf("%d ", q[i]);
 return 0;
}