Cod sursa(job #2723890)

Utilizator levladiatorDragutoiu Vlad-Ioan levladiator Data 15 martie 2021 19:12:30
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

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

const int NMAX = 300001;
const int KMAX = 30;

int n, m, dp[KMAX][NMAX];

int main() {

    f >> n >> m;

    for(int i = 1;i <= n;++i)
        f >> dp[0][i];

    for(int i = 1;i < KMAX;++i)
        for(int j = 1;j <= n;++j)
            dp[i][j] = dp[i - 1][ dp[i - 1][j] ];

    for(;m--;) {
        int x, y;
        f >> x >> y;

        for(int exp{};y;y >>= 1, exp++) {
            if(y & 1)
                x = dp[exp][x];
        }

        g << x << '\n';
    }

    return 0;
}