Cod sursa(job #3274079)

Utilizator Gerald123Ursan George Gerald123 Data 4 februarie 2025 22:53:37
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
///circular
#include <bits/stdc++.h>
#define MOD 666013
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
long long i,j,n,q,x,y,k,cn;
int st[250010][20];

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    fin>>n>>q;
    for(i=1; i<=n; i++)
        fin>>st[i][0];
    for(i=1; (1<<i)<=n; i++)
        for(j=1; j<=n; j++)
            st[j][i]=st[st[j][i-1]][i-1];
    for(k=1; k<=q; k++)
    {
        fin>>x>>y;
        cn=0;
        while((1<<cn)<=y)
            cn++;
        for(; cn>=0 && y>0; cn--)
        {
            if((1<<cn)<=y)
            {
                x=st[x][cn];
                y-=(1<<cn);
            }
        }
        fout<<x<<'\n';
    }
    return 0;
}