Cod sursa(job #1259869)

Utilizator emiiMihailescu Ionut Emanuel emii Data 10 noiembrie 2014 17:43:31
Problema Cerere Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
#include<vector>
using namespace std;
ifstream f("cerere.in");
ofstream g("cerere.out");
int n,i,x,y,z,k;
vector <int> v,t;
int stramos (int nr,int y)
{
    int d=0,x=y;
    while(d<nr)
        d++,x=t[x];
    return x;
}
int main()
{f>>n;
v.push_back(0);
for(i=1;i<=n;i++)
{
    f>>x;
    v.push_back(x);
    t.push_back(0);
}
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;
}