Cod sursa(job #2634416)

Utilizator bem.andreiIceman bem.andrei Data 10 iulie 2020 20:49:03
Problema Stramosi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 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)
        {
            int cp=p;
            int k=0;
            while(cp%2==0){
                k++;
                cp/=2;
            }
            q=stramos[k][q];
            p-=1<<k;
        }
        w<<q<<"\n";
    }
    return 0;
}