Pagini recente » Cod sursa (job #2620204) | Cod sursa (job #2580687) | Cod sursa (job #1495766) | Cod sursa (job #2853267) | Cod sursa (job #392447)
Cod sursa(job #392447)
# include <fstream.h>
ifstream f ("cerere.in");
ofstream g ("cerere.out");
int c[100005],t[100000],v[100000],x,y,i,j,n,k;
struct nod
{
int info;
nod *urm;
}*p,*a[100005];
void df (int x)
{
nod *p;
k++;
v[k]=x;
if (c[x]!=0)
t[x]=v[k-c[x]];
p=a[x];
while (p)
{
df(p->info);
p=p->urm;
}
k--;
}
int main ()
{
f>>n;
for (i=1;i<=n;i++)
f>>c[i];
for (i=1;i<n;i++)
{
f>>x>>y;
p=new nod;
p->info=y;
p->urm=a[x];
a[x]=p;
}
df (1);
for (i=1;i<=n;i++)
{
k=0;
if (c[i])
{
x=t[i];
k++;
while (t[x])
{
x=t[x];
k++;
}
}
g<<k<<" ";
}
return 0;
}