Pagini recente » Cod sursa (job #1931329) | Cod sursa (job #3266893) | Cod sursa (job #34469) | Cod sursa (job #2062271) | Cod sursa (job #874316)
Cod sursa(job #874316)
#include<fstream>
#include<vector>
#define N 100009
using namespace std;
ifstream f("cerere.in");
ofstream g("cerere.out");
int n,i,a,b,t,vf,v,v1,st[N],k[N],c[N],nr[N];
vector<int>l[N];
int main()
{
f>>n;
for(i=1;i<=n;++i)
f>>k[i];
for(i=1;i<n;++i)
{
f>>a>>b;
l[a].push_back(b);
t^=b;
t^=i;
}
t^=n;
vf++;
st[vf]=t;
while(vf)
{
v=st[vf];
if(nr[v]==(int)l[v].size())
--vf;
else
{
v1=l[v][nr[v]];
++nr[v];
++vf;
st[vf]=v1;
if(k[v1])
{
c[v1]=c[st[vf-k[v1]]]+1;
}
}
}
for(i=1;i<=n;++i)
g<<c[i]<<' ';
return 0;
}