Cod sursa(job #1862671)

Utilizator NinjaCubeMihai Radovici NinjaCube Data 30 ianuarie 2017 10:13:44
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <bits/stdc++.h>
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;
}