Cod sursa(job #2073608)

Utilizator GeorgeCalinPetruta George-Calin GeorgeCalin Data 23 noiembrie 2017 13:37:08
Problema Cerere Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <vector>
#define nmax 100002
using namespace std;
ifstream fin("cerere.in");
ofstream fout("cerere.out");

int pas[nmax];
int tata[nmax];
int sol[nmax];

int main()
{
    int n,x,y;
    fin>>n;
    for(int i=1;i<=n;i++)
    {
        fin>>pas[i];
    }
    for(int i=1;i<=n;i++)
    {
        fin>>x>>y;
        tata[y]=x;
    }
    for(int i=1;i<=n;i++)
    {
        int c=0;
        int nod=i;
        while(pas[nod]!=0)
        {
            int nod_copie=nod;
            for(int i=1;i<=pas[nod_copie];i++)
            {
                nod=tata[nod];
            }
            c++;
        }
        sol[i]=c;
    }
    for(int i=1;i<=n;i++)
    {
        fout<<sol[i]<<" ";
    }
    return 0;
}