Pagini recente » Cod sursa (job #563151) | Cod sursa (job #2031381) | Cod sursa (job #2337942) | Cod sursa (job #2114061) | Cod sursa (job #475799)
Cod sursa(job #475799)
#include <cstdio>
#include <vector>
#define N 100003
using namespace std;
int v[N],nr,c[N];
vector <int> x[N];
void rez (int k)
{
++nr;c[nr]=k;
if (v[k]!=0) v[k]=v[c[nr-v[k]]]+1;
vector<int> :: iterator it;
for (it=x[k].begin();it!=x[k].end();++it) rez(*it);
nr--;
}
int main()
{
int n,i,s=0,j,a,b;
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,&b); s+=b; x[a].push_back(b);}
s=(n+1)*n/2-s;
rez(s);
for (i=1;i<=n;++i) printf("%d ",v[i]);
return 0;}