Cod sursa(job #2878678)

Utilizator andrei81Ragman Andrei andrei81 Data 27 martie 2022 14:17:32
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>

using namespace std;

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

int n, m, q, p, aux;
int dp[25][250005];

int main()
{
    fin >> n >> m;

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

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

    for ( int i = 1; i <= m; i++ )
    {
        fin >> q >> p;

        for ( int i = 0; i <= 20; i++ )
            if ( p & (1 << i) )
                q = dp[i][q];

        fout << q << "\n";
    }
}