Pagini recente » Cod sursa (job #1502062) | Cod sursa (job #1241410) | Cod sursa (job #2758452) | Cod sursa (job #1884125) | Cod sursa (job #475760)
Cod sursa(job #475760)
#include <cstdio>
#define N 10003
int v[N],ok[N],c[N+10],a[N],b[N],n,y=0,i,s=0;;
void coad( int k)
{
int p;
if (v[k]!=0)
ok[k]=c[y-v[k]];
v[k]=-1;
for (p=1;p<n;++p)
if (a[p]==k) ++y,c[y]=b[p],coad(b[p]);
y--;
}
int main()
{
freopen("cerere.in","r",stdin);
freopen("cerere.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;++i) scanf("%d",&v[i]);
for (i=1;i<n;++i)
{
scanf("%d %d",&a[i],&b[i]);
s+=b[i];
}
s=(n*(n+1))/2-s;
c[y]=s;
coad(s);
for (i=1;i<=n;++i)
{
if (ok[i]==0) printf("0 "); else
printf("%d ",ok[ok[i]]+1);
}
/* for (i=1;i<=n;++i)
printf("%d ",ok[i]);
*/ return 0;}