Cod sursa(job #1778970)

Utilizator andra1782Andra Alazaroaie andra1782 Data 14 octombrie 2016 16:16:12
Problema Stramosi Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <stdio.h>
#define MAX 250001
int d[18][MAX];
int main(){
    FILE *fin=fopen("stramosi.in","r");
    FILE *fout=fopen("stramosi.out","w");
    int n,m,i,j,q,p;

    fscanf(fin,"%d%d",&n,&m);
    for(i=1; i<=n; i++)
        fscanf(fin,"%d",&d[0][i]);
    for(i=1; i<18; i++)
        for(j=1; j<=n; j++)
            d[i][j]=d[i-1][d[i-1][j]];
    for(i=0; i<m; i++){
        fscanf(fin,"%d%d",&q,&p);
        j=0;
        while(p){
            if(p%2!=0)
                q=d[j][q];
            p/=2;
            j++;
        }
        fprintf(fout,"%d\n",q);
    }
    fclose(fin);
    fclose(fout);
    return 0;
}