Cod sursa(job #124798)

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

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

int afla(int x, int 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);
	int i, j, k;
	scanf("%d", &n);
	for (i = 1; i <= n; i++) scanf ("%d", a + i);

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

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