Cod sursa(job #277463)
| Utilizator | Data | 11 martie 2009 19:03:23 | |
|---|---|---|---|
| Problema | Cerere | Scor | 50 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <iostream>
#define maxn 100001
using namespace std;
int sir[maxn],tata[maxn];
int n;
int main()
{
int x,y;
freopen("cerere.in","r",stdin);
freopen("cerere.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&sir[i]);
for(int i=1;i<n;i++)
{
scanf("%d%d",&x,&y);
tata[y]=x;
}
for(int i=1;i<=n;i++)
{
int s=0,x;
int poz=i;
while(sir[poz]!=0)
{
x=sir[poz];
for(int j=1;j<=x;j++)
poz=tata[poz];
s++;
}
printf("%d ",s);
}
return 0;
}
