Cod sursa(job #2503765)

Utilizator Anakin1001George Giorgiu Gica Anakin1001 Data 3 decembrie 2019 19:07:44
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <vector>
#include <cstring>
#include <climits>

#define power 17
#define N 250000 + 1

using namespace std;

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

int d[power + 1][N], e[power + 1];

int main()
{   int n, q, i, org, lvl;
    f >> n >> q;
    for ( i = 1; i <= n; i++ )
        f >> d[0][i];
    for ( i = 1; i <= power; i++){
        for ( int j = 1; j <= n; j++ )
            d[i][j] = d[i - 1][ d[i - 1][j] ];
    }
    for ( i = 1; i <= q; i++ ){
        f >> org >> lvl;
        for ( int j = 0; ( 1 << j ) <= lvl; j++ )
            if ( ( ( lvl >> j ) & 1 ) == 1 )
                org = d[j][org];
        g << org << '\n';
    }
    return 0;
}