Pagini recente » Cod sursa (job #1052096) | Cod sursa (job #406399) | Cod sursa (job #993474) | Cod sursa (job #1712041) | Cod sursa (job #2257683)
#include <fstream>
#include <vector>
#include <cstring>
#define maxn 100002
using namespace std;
ifstream fin("cerere.in");
ofstream fout("cerere.out");
int n, t[maxn], a[maxn], v[maxn], vf;
int dfs(int nod)
{
if(!v[nod])
{
return 0;
}
int copie=v[nod],nod1=nod;
while(copie--)
{
nod1=t[nod1];
}
return dfs(nod1)+1;
}
int main()
{
fin>>n;
for(int i=1; i<=n; i++)
{
fin>>v[i];
}
for(int i=1, x, y; i<n; i++)
{
fin>>x>>y;
t[y]=x;
}
/*for(int i=1; i<=n; i++)
{
if(!t[i])
{
vf=i;
break;
}
}*/
for(int i=1; i<=n; i++)
{
fout<<dfs(i)<<' ';
}
return 0;
}