Pagini recente » Cod sursa (job #389175) | Cod sursa (job #1955018) | Cod sursa (job #2323335) | Cod sursa (job #229277) | Cod sursa (job #1262442)
#include <iostream>
#include <fstream>
#define nmax 100001
using namespace std;
ifstream f("cerere.in");
ofstream g("cerere.out");
int n,k[nmax];
int s[nmax];
int find(int a)
{
if(!k[a])return 0;
int nr_s,nr=0;
for(;;) ///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(k[a]==0)return nr; ///daca am ajuns la un stramos destept
}
}
int main()
{
int a,b;
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++)
g<<find(i)<<" ";
return 0;
}