Cod sursa(job #2901212)

Utilizator PatrascuAdrian1Patrascu Adrian Octavian PatrascuAdrian1 Data 13 mai 2022 12:17:55
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>

using namespace std;

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

const int Nmax = 250005, Lmax = 19;
int dp[Lmax][Nmax];
int N, M, x, y, ans, step;

int main()
{
    in >> N >> M;
    for(int i = 1; i <= N; ++i)
        in >> dp[0][i];

    for(int j = 1; j < Lmax; ++j)
        for(int i = 1; i <= N; ++i)
            dp[j][i] = dp[j - 1][dp[j - 1][i]];

    while(M--)
    {
        in >> x >> y;
        ans = x;
        step = 0;
        while(y)
        {
            if(y & 1)
                ans = dp[step][ans];
            step++;
            y >>= 1;
        }
        out << ans << '\n';
    }
    return 0;
}