Cod sursa(job #1852843)

Utilizator luci2000lup lucia luci2000 Data 21 ianuarie 2017 11:03:55
Problema Stramosi Scor 100
Compilator cpp Status done
Runda gym_emag_avansati_2016 Marime 0.61 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("stramosi.in");
ofstream fout("stramosi.out");

#define lim 250020
int n,m,dp[20][lim];

int main()
{
    int nod,lev;

    fin>>n>>m;

    for(int i=1; i<=n; i++)
        fin>>dp[0][i];
    for(int p=1; (1<<p)<=n; p++)
        for(int i=1; i<=n; i++)
            dp[p][i]=dp[p-1][dp[p-1][i]];
    for(int i=1; i<=m; i++)
    {
        fin>>nod>>lev;
        for(int p=0; (1<<p)<=lev; p++)
            if(lev&(1<<p))  nod=dp[p][nod];
        fout<<nod<<'\n';
    }

    fin.close();
    fout.close();
    return 0;
}