Pagini recente » Cod sursa (job #2576250) | Cod sursa (job #3139275) | Cod sursa (job #429629) | Cod sursa (job #2636017) | Cod sursa (job #1263210)
#include <iostream>
#include <fstream>
#define nmax 100001
using namespace std;
ifstream f("cerere.in");
ofstream g("cerere.out");
int n,k[nmax];
int rez[nmax];
int s[nmax];
int find(int a)
{
}
int main()
{
int a,b,nr_s,nr;
f>>n;
for(int i=1;i<=n;i++)
f>>k[i];
for(int i=1;i<n;i++)
{f>>a>>b;
s[b]=a;}
for(int i=1;i<=n;i++)
{
if(!k[i])g<<0<<" ";
else
{
a=i;
nr_s=0,nr=0;
for(;k[a];) ///cat timp nu gaseste o maimuta desteapta
{
nr_s = k[a];
while(nr_s) ///ajung la stramosul k;
{
a=s[a];
nr_s--;
}
nr++;
if(rez[a]){nr+=rez[a];break;}
}
g<<nr<<" ";
rez[i]=nr;
}
}
return 0;
}