Cod sursa(job #3274121)

Utilizator andrei0925Andrei Perdevara andrei0925 Data 5 februarie 2025 11:14:41
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int n,q,dp[250005][20],x,k;

int main()
{
    in>>n>>q;
    for(int i=1;i<=n;i++)
        in>>dp[i][0];
    for(int i=1;(1<<i)<=n;i++)
        for(int j=1;j<=n;j++)
            dp[j][i]=dp[dp[j][i-1]][i-1];
    /*
    for(int i=1;(1<<i)<=n;i++)
    {
        for(int j=1;j<=n;j++)
            out<<dp[j][i]<<' ';
         out<<'\n';
    }
    */
    for(int i=1;i<=q;i++)
    {
        in>>x>>k;
        for(int j=20;j>=0;j--)
        {
            if((1<<j)<=k)
            {
                k-=(1<<j);
                x=dp[x][j];
            }
        }
        out<<x<<'\n';
    }
}