Cod sursa(job #124800)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 19 ianuarie 2008 21:49:06
Problema Cerere Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <stdio.h>

long n, a[100000], v[100000];

long afla(long x, long c)
{
	if (!a[x] || !v[x]) return c;
	else
	{
		c++;
		a[x]--;
		x = v[x];
		return afla(x, c);
	}
}

int main()
{
	freopen("cerere.in","r",stdin);
	freopen("cerere.out","w",stdout);
	long i, j, k;
	scanf("%ld", &n);
	for (i = 1; i <= n; i++) scanf ("%ld", &a[i]);

	for (i = 1; i < n ; i++)
	{
		scanf ("%ld %ld", &j, &k);
		v[k] = j;
	}

	for (i = 1; i <= n; i++)
	{
		j = afla(i,0);
		printf("%ld ",j);
	}
	printf("\n");
	return 0;
}