Cod sursa(job #1348203)

Utilizator MaarcellKurt Godel Maarcell Data 19 februarie 2015 16:06:35
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <iostream>
#include <fstream>
using namespace std;

int N,M,dp[20][250010];

int main(){
    ifstream fin("stramosi.in");
    ofstream fout("stramosi.out");
    fin >> N >> M;

    int i,j,x,l;
    for (i=1; i<=N; i++) fin >> dp[0][i];


    for (i=1; (1<<i)-1<=N; i++)
        for (j=1; j<=N; j++)
            dp[i][j]=dp[i-1][dp[i-1][j]];


    for (i=1; i<=M; i++){
        fin >> x >> l;
        for (j=0; (1<<j)<=l; j++)
            if (l&(1<<j))  x=dp[j][x];

        fout << x << "\n";
    }

    return 0;
}