Cod sursa(job #3181062)

Utilizator Bianca2507Negret Bianca Bianca2507 Data 6 decembrie 2023 13:16:16
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>

using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int n,m,v[250002],q,p,aux,d[19][250002],e[250002],power;
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        cin>>v[i],d[0][i]=v[i];
    e[1]=0;
    for(int i=2;i<=n;i++)
        e[i]=e[i/2]+1;
    ///facem ca la rmq
    ///pastram stramosi mergand din putere de 2 in putere de 2
    for(int p=1;(1<<p)<=n;p++)
        for(int i=1;i<=n;i++)
    {
        d[p][i]=d[p-1][d[p-1][i]];

    }
    for(int i=1;i<=m;i++)
    {
        cin>>q>>p;
        aux=q;
        power=0;
        while(p!=0)
        {
            if(p%2==1)
                aux=d[power][aux];
            power++;
            p=p/2;
        }
        cout<<aux<<'\n';
    }
    return 0;
}