Cod sursa(job #2339634)

Utilizator alex2kamebossPuscasu Alexandru alex2kameboss Data 9 februarie 2019 10:50:09
Problema Stramosi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <cstdio>
#include <vector>

using namespace std;

int p[250005][20];

int n,m,q,x;

void solve(){
    int t=x, cnt=0;
    while(q>0){
        if(q%2==0){
            q/=2;
            ++cnt;
        }
        else{
            --q;
            t=p[t][cnt];
            cnt=0;
        }
    }
    cout<<t<<"\n";
}

int main()
{
    freopen("stramosi.in","r",stdin);
    freopen("stramosi.out","w",stdout);

    cin>>n>>m;

    for(int i=1;i<=n;++i)
        cin>>p[i][0];

    for(int i=1;i<=n;++i)
        for(int j=1;j<18;++j)
            p[i][j]=p[p[i][j-1]][j-1];

    for(int i=0;i<m;++i){
        cin>>x>>q;
        solve();
    }

    return 0;
}