Pagini recente » Cod sursa (job #930484) | Cod sursa (job #2110876) | Cod sursa (job #581350) | Cod sursa (job #992549) | Cod sursa (job #1336201)
#include <fstream>
#define Nmax 100002
using namespace std;
ifstream is ("cerere.in");
ofstream os ("cerere.out");
int T[Nmax], X[Nmax];
int N, cnt;
void Read();
void DFS(int nod, int nr);
int main()
{
Read();
for(int i = 1; i <= N; ++i)
{
cnt = 0;
if(X[i])
DFS(i, X[i]);
os << cnt << " ";
}
is.close();
os.close();
return 0;
}
void Read()
{
int x, y;
is >> N;
for(int i = 1; i <= N; ++i)
is >> X[i];
for(int i = 1; i < N; ++i)
{
is >> x >> y;
T[y] = x;
}
}
void DFS(int nod, int nr)
{
if(!nr)
{
cnt++;
if(!X[nod])
return;
nr = X[nod];
}
DFS(T[nod], nr-1);
}