Cod sursa(job #2634418)

Utilizator bem.andreiIceman bem.andrei Data 10 iulie 2020 20:51:57
Problema Stramosi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <bits/stdc++.h>
using namespace std;
ifstream r("stramosi.in");
ofstream w("stramosi.out");
int n,m,stramos[20][250002];
int main()
{
    r>>n>>m;
    for(int i=1; i<=n; i++){
        r>>stramos[0][i];
    }
    int i=1;
    for(int p=2; p<=n;p*=2){
        i++;
        for(int j=1; j<=n; j++){
            stramos[i][j]=stramos[i-1][stramos[i-1][j]];
        }
    }
    while(m--){
        int p,q;
        r>>q>>p;
        while(p!=0)
        {
            int k=__builtin_ctz(p);
            q=stramos[k][q];
            p-=1<<k;
        }
        g<<q<<'\n';
    }
    return 0;
}