Cod sursa(job #694590)

Utilizator alex_tomaTOMA ALEX alex_toma Data 27 februarie 2012 22:00:35
Problema Cerere Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 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;
	if(k==0)
		str=j;
	else
	for(i=1;i<n;i++)
		if(j==m[i])
		stramos(t[i],k-=1);
}
void rezolvare()
{
	long i;
	for(i=1;i<=n;i++)
	{
		if(k[i]==0)
			c[i]=0;
		else
		{
		stramos(i,k[i]);
		c[i]++;
		while(k[str]!=0)
		{
			c[i]++;
			stramos(str,k[str]);
		}
		}
	}
}
void tiparire()
{
	long i;
	for(i=1;i<=n;i++)
		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();
	tiparire();
	f.close();
	g.close();
}