Cod sursa(job #3324524)

Utilizator dragos_poputepopute dragos mihai dragos_popute Data 22 noiembrie 2025 12:27:17
Problema Stramosi Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n,m,tt[250001];
int mat[30][250001],loga[300000];
void citire()
{
    fin>>n>>m;
    for(int i=1;i<=n;i++)
        fin>>mat[0][i];
}
void matr()
{
    for(int i=1;(1<<i)<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {

                mat[i][j]=mat[i-1][mat[i-1][j]];

        }
    }
}
void logo()
{
    for(int i=2;i<=260000;i++)
        loga[i]=loga[i/2]+1;
}
void solve()
{
    for(int i=1;i<=m;i++)
    {   int p,q;
        fin>>q>>p;
        while(p)
        {
            int l=loga[p];
            int z=(1<<l);
            q=mat[l][q];
            p-=z;

        }
        fout<<q;fout<<endl;

    }
}
int main()
{
    citire();
    matr();
    solve();
    return 0;
}