Cod sursa(job #414324)

Utilizator loginLogin Iustin Anca login Data 9 martie 2010 22:26:38
Problema Cerere Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
# include <fstream>
using namespace std;
int n, t[100003], v[100003], g[100003];

void read ()
{
	ifstream fin ("cerere.in");
	fin>>n;
	for (int i=1;i<=n;i++)
		fin>>v[i];
	for (int i=1;i<n;i++)
	{
		int a, b;
		fin>>a>>b;
		t[b]=a;
	}
}

void solve ()
{
	int nrs, k;
	for (int i=1;i<=n;i++)
		if (v[i])
		{
			k=i;
			nrs=0;
			while (nrs<v[i])k=t[k], ++nrs;
			g[i]=1+g[k];
		}
}

void write ()
{
	freopen ("cerere.out", "w", stdout);
	for (int i=1;i<=n;i++)
		printf("%d ", g[i]);
}

int main ()
{
	read ();
	solve();
	write();
	return 0;
}