Pagini recente » Cod sursa (job #34901) | Cod sursa (job #1074496) | Cod sursa (job #383636) | Cod sursa (job #305178) | Cod sursa (job #2170902)
#include <fstream>
using namespace std;
ifstream fin("cerere.in");
ofstream fout("cerere.out");
int nr,t[100001],n,k[100001];
int gaseste(int maimuta, int cati)
{
if(k[maimuta]==0)
return nr;
int nod=maimuta;
while(cati!=0)
{
cati--;
nod=t[nod];
}
nr++;
gaseste(nod,k[nod]);
}
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
fin>>k[i];
for(int i=1;i<=n-1;i++)
{
int a,b;
fin>>a>>b;
t[b]=a;
}
for(int i=1;i<=n;i++)
{
nr=0;
fout<<gaseste(i,k[i])<<" ";
}
return 0;
}