Cod sursa(job #3273098)

Utilizator bostanlucastefanBostan Luca-Stefan bostanlucastefan Data 1 februarie 2025 09:54:12
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#define FAST ios_base::sync_with_stdio(false);

using namespace std;

ifstream cin("stramosi.in");
ofstream cout("stramosi.out");

const int N=25e4;

int n,q,i,j;
int jump[20][N+2],log2[N+2];

int main()
{
    FAST
    cin>>n>>q;
    for(i=1; i<=n; i++)
        cin>>jump[0][i];
    
    for(i=1; (1<<i)<=n; i++)
        for(j=1; j<=n; j++)
            jump[i][j]=jump[i-1][jump[i-1][j]];
            
    for(i=2; i<=N; i++)
        log2[i]=log2[i/2]+1;
    
    while(q--)
    {
        int u,k;
        cin>>u>>k;
        while(k)
        {
            u=jump[log2[k]][u];
            k-=(1<<log2[k]);
        }
        cout<<u<<'\n';
    }
    return 0;
}