Pagini recente » Cod sursa (job #1110417) | Cod sursa (job #757633) | Cod sursa (job #2437883) | Cod sursa (job #2026241) | Cod sursa (job #874315)
Cod sursa(job #874315)
#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^=b;
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]>0)
{
c[v1]=c[st[vf-k[v1]]]+1;
}
}
}
for(i=1;i<=n;++i)
g<<c[i]<<' ';
return 0;
}