Cod sursa(job #1259862)

Utilizator emiiMihailescu Ionut Emanuel emii 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;
}