Cod sursa(job #3272540)

Utilizator Eric_PaturanEric Paturan Eric_Paturan Data 29 ianuarie 2025 19:11:50
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>

using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int n,m;
int x;
int p,q;
int tata[250001][19];
int log2[250001];
int main()
{
    cin>>n>>m;
    for(int i=0;i<n;i++)
    {
        cin>>x;
        tata[i+1][0]=x;
    }

    for(int i=2;i<=250000;i++)
        log2[i]=log2[i/2]+1;

    for(int i=1;i<=n;i++)
    {
        for(int putere=1;putere<=18;putere++)
        {
            tata[i][putere]=tata[tata[i][putere-1]][putere-1];
        }
    }

    for(int i=0;i<m;i++)
    {
        cin>>q>>p;
        while(p)
        {

            int putere=log2[p];
            p-=(1<<putere);
            q=tata[q][putere];
        }
        cout<<q<<'\n';
    }
    return 0;
}