Cod sursa(job #1018979)

Utilizator innamanea adelina inna Data 30 octombrie 2013 11:44:08
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#define _CRT_SECURE_NO_DEPRECATE
#include <fstream>
 
#define MAXN 250001
#define MAXLOGN 18
 
int a[MAXLOGN][MAXN];
 
int main(){
 
    FILE *fin, *fout;   
    fin = fopen("stramosi.in", "r");
    fout = fopen("stramosi.out", "w");
 
    int n,m;
    fscanf(fin, "%d %d", &n, &m);
 
    int p,q;
 
    for (int i=1;i<=n;i++){
        fscanf(fin, "%d", &a[0][i]);
    }
 
    for (int i=1;i<MAXLOGN;i++)
        for (int j=1;j<=n;j++)
            a[i][j] = a[i-1][a[i-1][j]];
 
    for (int i=0;i<m;i++){
        fscanf(fin, "%d %d", &q, &p);
 
        for (int k=17;k>=0 && q>0;k--)
            if (p & (1<<k)) 
                q = a[k][q];
 
        fprintf(fout,"%d\n", q);
    }
 
    fclose(fin);
    fclose(fout);
 
    return 0;
}