Cod sursa(job #3284880)

Utilizator bexxRebeca N bexx Data 12 martie 2025 11:57:58
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <fstream>
using namespace std;

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

//binary lifting
int n,q,t[20][250002];

int main()
{
    cin>>n>>q;
    for(int j=1;j<=n;j++)
        cin>>t[0][j]; //stramosul direct, al 2^0 stramos al j
    for(int i=1;i<=19;i++)
    for(int j=1;j<=n;j++)
        t[i][j]=t[i-1][t[i-1][j]];
    while(q--)
    {
        int p,nod;
        cin>>nod>>p;
        int ans=nod,i=19;
        while(i>=0)
        {
            if(((1<<i) & p))
                ans=t[i][ans];
            i--;
        }
        cout<<ans<<'\n';
    }
    return 0;
}