Cod sursa(job #3277241)

Utilizator builder23Nicolae Spaidar builder23 Data 15 februarie 2025 14:35:41
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");

const int kMaxN = 250'001, kMaxLg = 18;
int n, m, dp[kMaxLg][kMaxN];

void prep(){
fin>>n>>m;
for(int i=1; i<=n; i++)
    fin>>dp[0][i];

for(int i=1; i<kMaxLg; i++){
    for(int j=1; j<=n; j++){
        dp[i][j]=dp[i-1][dp[i-1][j]];
    }
}

}


int main()
{
prep();
while(m--){
    int nod, d;
    fin>>nod>>d;
    for(int i=0; i<kMaxLg; i++){
        if(d & (1 << i))
            nod = dp[i][nod];
    }
    fout<<nod<<"\n";
}

    return 0;
}