Pagini recente » Cod sursa (job #8056) | Cod sursa (job #998976) | Cod sursa (job #1322344) | Cod sursa (job #323769) | Cod sursa (job #694590)
Cod sursa(job #694590)
#include<fstream>
using namespace std;
fstream f("cerere.in",ios::in);
fstream g("cerere.out",ios::out);
long k[100001],t[100001],m[100001],n,str,c[100001];
void stramos(long j,long k)
{
long i;
if(k==0)
str=j;
else
for(i=1;i<n;i++)
if(j==m[i])
stramos(t[i],k-=1);
}
void rezolvare()
{
long i;
for(i=1;i<=n;i++)
{
if(k[i]==0)
c[i]=0;
else
{
stramos(i,k[i]);
c[i]++;
while(k[str]!=0)
{
c[i]++;
stramos(str,k[str]);
}
}
}
}
void tiparire()
{
long i;
for(i=1;i<=n;i++)
g<<c[i]<<" ";
}
void citire()
{
long i;
f>>n;
for(i=1;i<=n;i++)
f>>k[i];
for(i=1;i<n;i++)
f>>t[i]>>m[i];
}
int main()
{
citire();
rezolvare();
tiparire();
f.close();
g.close();
}