Pagini recente » Cod sursa (job #1143242) | Cod sursa (job #2945403) | Cod sursa (job #2801199) | Cod sursa (job #2029497) | Cod sursa (job #1758032)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("cerere.in");
ofstream fout("cerere.out");
vector <int> G[100005];
int stramos[100004],a[100005];
int n;
void dfs(int poz,int &total)
{
int prz=poz;
total++;
for(int i=1;i<=stramos[poz];i++)
prz=G[prz][0];
if(stramos[prz]!=0)
dfs(prz,total);
}
int main()
{
fin>>n;
int i;
for(i=1;i<=n;i++)
fin>>stramos[i];
for(i=1;i<n;i++)
{
int c,b;
fin>>c>>b;
G[b].push_back(c);
}
for(i=1;i<=n;i++)
{
if(stramos[i]!=0)
dfs(i,a[i]);
fout<<a[i]<<" ";
}
return 0;
}