Cod sursa(job #1259862)
Utilizator | Data | 10 noiembrie 2014 17:38:36 | |
---|---|---|---|
Problema | Cerere | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Teme Pregatire ACM Unibuc 2013 | Marime | 0.59 kb |
#include <fstream>
#include<vector>
using namespace std;
ifstream f("cerere.in");
ofstream g("cerere.out");
int n,i,x,y,t[100001],v[100001],z,k;
int stramos (int nr,int y)
{
int d=0,x=y;
while(d<nr)
d++,x=t[x];
return x;
}
int main()
{f>>n;
for(i=1;i<=n;i++)
{
f>>x;
v[i]=x;
}
for(i=1;i<n;i++)
{
f>>x>>y;
t[y]=x;
}
for(i=1;i<=n;i++)
if(v[i]==0)
g<<0<<" ";
else
{
k=1;
z=stramos(v[i],i);
while(v[z]!=0)
{k++;z=stramos(v[z],z);
}
g<<k<<" ";
}
return 0;
}