Cod sursa(job #3208023)

Utilizator AndreasBossGamerBaragau Andreas AndreasBossGamer Data 27 februarie 2024 14:18:19
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>

using namespace std;

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

int n, q;
int rmq[19][250001];

int main()
{
    cin>>n>>q;
    for(int i = 1;i<=n;i++)
    {
        int x;
        cin>>x;
        rmq[0][i] = x;
    }
    for(int e = 1;(1<<e)<=n;e++)
    {
        for(int i = 1;i<=n;i++)
        {
            rmq[e][i] = rmq[e-1][rmq[e-1][i]];
        }
    }

    while(q--)
    {
        int node, k;
        cin>>node>>k;
        for(int i = 0; i<=19;i++)
            if((1<<i) & k) node = rmq[i][node];
        cout<<node<<"\n";
    }
}