Pagini recente » Cod sursa (job #3210858) | Cod sursa (job #3210429) | Cod sursa (job #1711337) | Cod sursa (job #1794029) | Cod sursa (job #734887)
Cod sursa(job #734887)
#include <fstream>
#include <vector>
#define pb push_back
#define dim 100001
using namespace std;
ifstream f("cerere.in");
ofstream g("cerere.out");
int n,i,rez,a,b;
int ara[dim],arb[dim],arc[dim];
vector<int> A[dim];
void dfs(int nod,int lvl)
{
vector<int>::iterator i;
ara[lvl]=nod;
arb[nod]=1+arb[ara[lvl-arc[nod]]];
if (!arc[nod])
--arb[nod];
for(i=A[nod].begin();i!=A[nod].end();i++)
dfs(*i,lvl+1);
}
int main()
{
f>>n;
for (i=1;i<=n;i++)
f>>arc[i];
rez=(n*n+n)/2;
for (i=1;i<n;i++)
{
f>>a>>b;
A[a].pb(b);
rez-=b;
}
dfs(rez,1);
for (i=1;i<=n;i++)
g<<arb[i]<<' ';
return 0;
}