Cod sursa(job #2573902)

Utilizator spartanul300Vasile Andrei spartanul300 Data 5 martie 2020 19:21:27
Problema Stramosi Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("stramosi.in");
ofstream g("stramosi.out");

int n,m,i,x,k,stramos,pas,t,dp[250100][18],tata[250100];

int main()
{
    f>>n>>m;
    for(i=1;i<=n;i++)
    {
        f>>x;
        tata[i]=x;
    }

    for(i=1;i<=n;i++)dp[i][0]=tata[i];
    for(k=1;(1<<k)<=n;k++)
    {
        for(i=1;i<=n;i++)
        {
            dp[i][k]=dp[dp[i][k-1]][k-1];
        }
    }

    for(i=1;i<=m;i++)
    {
        f>>stramos>>t;

        pas=0;
        while(t)
        {
            if(t%2==1)stramos=dp[stramos][pas];
            pas++;
            t/=2;
        }

        g<<stramos<<'\n';
    }
    return 0;
}