Cod sursa(job #3283287)

Utilizator iEmanuelRob Emanuel iEmanuel Data 8 martie 2025 21:31:16
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
#define cin fin
#define cout fout
int str[20][250002];//i , j la dist i din nodu j
int main(){
    int n,q;
    cin>>n>>q;
    for(int i=1;i<=n;i++){
        cin>>str[0][i];
    }

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


    while(q--){
        int p,nod;
        cin>>nod>>p;
        int i=20;
        int ans=nod;
        while(i>=0){
            if(((1<<i)&p))
            ans=str[i][ans];
            i--;
        }
        cout<<ans<<'\n';
    }

}