Pagini recente » Cod sursa (job #1714956) | Cod sursa (job #1130007) | Cod sursa (job #2634400) | Cod sursa (job #1871374) | Cod sursa (job #414324)
Cod sursa(job #414324)
# include <fstream>
using namespace std;
int n, t[100003], v[100003], g[100003];
void read ()
{
ifstream fin ("cerere.in");
fin>>n;
for (int i=1;i<=n;i++)
fin>>v[i];
for (int i=1;i<n;i++)
{
int a, b;
fin>>a>>b;
t[b]=a;
}
}
void solve ()
{
int nrs, k;
for (int i=1;i<=n;i++)
if (v[i])
{
k=i;
nrs=0;
while (nrs<v[i])k=t[k], ++nrs;
g[i]=1+g[k];
}
}
void write ()
{
freopen ("cerere.out", "w", stdout);
for (int i=1;i<=n;i++)
printf("%d ", g[i]);
}
int main ()
{
read ();
solve();
write();
return 0;
}