Cod sursa(job #773281)

Utilizator valentina506Moraru Valentina valentina506 Data 1 august 2012 12:50:58
Problema Cerere Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<fstream>
using namespace std;
int n,i,j,t[100001],uz[100001],x,y,c[100001];

void df(int x)
{
	int i,tx,xi;
	if(c[x]&&t[x])
	{
		xi=x;
	   tx=c[x];
	   while(tx&&x)
	   {
		   x=t[x];
		   tx--;
	   }
	   if(x)
	   {
		   df(x);
		   uz[xi]+=uz[x];
	   }
	   
	}
	else
		uz[x]=1;
	
}
	
int main()
{
	ifstream f("cerere.in");
	ofstream g("cerere.out");
	
	f>>n;
	for(i=1;i<=n;++i)
		f>>c[i];
	
	for(i=1;i<n;++i)
	{
		f>>x>>y;
		t[y]=x;
	}
	for(i=1;i<=n;++i)
	{
		if(c[i])
			df(i);
		g<<uz[i]<<" ";
	}
	
	return 0;
}