Cod sursa(job #1723586)

Utilizator bercean.bogdanBogdan-Alexandru Bercean bercean.bogdan Data 30 iunie 2016 23:31:50
Problema Stramosi Scor 70
Compilator c Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <stdio.h>
#include <stdlib.h>

struct persoana
{
    struct persoana * tata;
};

typedef struct persoana nod;

nod v[250001];
nod * curent;

int main()
{

    FILE * f=fopen("stramosi.in","r");
    FILE *fp=fopen("stramosi.out","w");

    long N,M,i,aux,j,P,Q;
    int ok;

    fscanf(f,"%ld %ld",&N,&M);

    for(i=1;i<=N;i++)
    {
        fscanf(f,"%ld",&aux);
        v[i].tata=&v[aux];
    }

    for(i=0;i<M;i++)
    {
        fscanf(f,"%ld %ld",&Q,&P);

        curent=&v[Q];
        ok=1;

        for(j=0;j<P;j++)
        {
            if(curent->tata==NULL)
            {
                fprintf(fp,"0\n");
                ok=0;
                break;
            }
            else
            {
                curent=curent->tata;
            }
        }
        if(ok) fprintf(fp,"%ld\n",(curent-&v[0]));
    }

    return 0;
}