Cod sursa(job #2339660)

Utilizator alex2kamebossPuscasu Alexandru alex2kameboss Data 9 februarie 2019 11:00:25
Problema Stramosi Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 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){
        if(q%2==0){
            q/=2;
            ++cnt;
        }
        else{
            --q;
            t=p[t][cnt];
            //cnt=0;
        }
    }
    printf("%d\n", t);
}

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

    scanf("%d%d", &n,&m);

    for(int i=1;i<=n;++i)
        scanf("%d", &p[i][0]);

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

    for(int i=0;i<m;++i){
        scanf("%d%d", &x,&q);
        solve();
    }

    return 0;
}