Cod sursa(job #3347547)

Utilizator altomMirel Fanel altom Data 17 martie 2026 10:55:20
Problema Stramosi Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");

const int NMAX=25e4;
int n,  m;
int tata[NMAX], dp[32][NMAX];

int main()
{
    fin>>n>>m;
    for(int i=1;i<=n;i++){
        fin>>tata[i];
    }

    for(int i=1;i<=n;i++){
        dp[0][i]=tata[i];
    }

    for(int p=1;p<=30;p++){
        for(int i=1;i<=n;i++){
            dp[p][i]=dp[p-1][dp[p-1][i]];
//            cout<<p<<" "<<i<<" "<<dp[p][i]<<'\n';
        }
    }

    int k, nod;
    while(m--){
        fin>>nod>>k;

        for(int i=0;i<=30;i++){
            if((k&(1<<i))){
//                cout<<k<<" "<<i<<" "<<dp[i][nod]<<'\n';
                nod=dp[i][nod];
            }
        }

        fout<<nod<<'\n';
    }



    return 0;
}