Pagini recente » Cod sursa (job #172012) | Cod sursa (job #1608621) | Cod sursa (job #792034) | Cod sursa (job #2172469) | Cod sursa (job #773290)
Cod sursa(job #773290)
#include<fstream>
using namespace std;
int n,i,j,t[100001],uz[100001],x,y,c[100001];
int df(int x)
{
int i,tx,xi;
if(uz[x]>0)
return uz[x];
else
if(c[x]==0||t[x]==0||x==0)
return 0;
else
{
xi=x;
i=c[x];
while(i--)
x=t[x];
uz[xi]=uz[xi]+df(x)+1;
return uz[xi];
}
}
int main()
{
ifstream f("cerere.in");
ofstream g("cerere.out");
f>>n;
for(i=1;i<=n;++i)
f>>c[i];
for(i=1;i<n;++i)
{
f>>x>>y;
t[y]=x;
}
for(i=1;i<=n;++i)
{
if(c[i]&&t[i]&&!uz[i])
df(i);
g<<uz[i]<<" ";
}
return 0;
}