Cod sursa(job #694629)

Utilizator alex_tomaTOMA ALEX alex_toma Data 27 februarie 2012 22:25:32
Problema Cerere Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<fstream>
using namespace std;
fstream f("cerere.in",ios::in);
fstream g("cerere.out",ios::out);
long k[100001],t[100001],m[100001],n,str,c[100001];
void stramos(long j,long k)
{
	long i,ok=1;
	if(k==0)
		str=j;
	else
	for(i=1;i<n && ok;i++)
		if(j==m[i])
		{
		stramos(t[i],k-=1);
		ok=0;
		}
}
void rezolvare()
{
	long i;
	for(i=1;i<=n;i++)
	{
		if(k[i]==0)
			g<<c[i]<<" ";
		else
		{
		str=i;
		while(k[str]!=0)
		{
			c[i]++;
		stramos(str,k[str]);
		}
		g<<c[i]<<" ";
		}
	}
}
void citire()
{
	long i;
	f>>n;
	for(i=1;i<=n;i++)
		f>>k[i];
	for(i=1;i<n;i++)
		f>>t[i]>>m[i];
}
int main()
{
	citire();
	rezolvare();
	f.close();
	g.close();
}