Cod sursa(job #1932896)

Utilizator Marius7122FMI Ciltea Marian Marius7122 Data 20 martie 2017 10:40:24
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <stdio.h>
#define N 250005
#define log 19

int n,m,i,j,p,q,ans;
int anc[log][N];

int main()
{
    FILE *f1,*f2;
    f1=fopen("stramosi.in","r");
    f2=fopen("stramosi.out","w");

    fscanf(f1,"%d%d",&n,&m);
    for(i=1;i<=n;i++)
        fscanf(f1,"%d",&anc[0][i]);

    for(j=1;(1<<j)<=n;j++)
        for(i=1;i<=n;i++)
            anc[j][i]=anc[j-1][anc[j-1][i]];


    while(m--)
    {
        fscanf(f1,"%d%d",&q,&p);

        ans=q;
        for(i=0;(1<<i)<=n;i++)
            if(p&(1<<i))
                ans=anc[i][ans];

        fprintf(f2,"%d\n",ans);
    }

    return 0;
}