Cod sursa(job #3230835)

Utilizator albuAlbu Victor albu Data 22 mai 2024 22:25:42
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <bits/stdc++.h>
#define NMax 250000
#define LogMax 18

using namespace std;

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

int n, m;
int p, q;
int d[LogMax + 1][NMax + 1];

void query ( int q, int p )
{
    for ( int i = LogMax; i >= 0; i-- )
        if ( p & (1 << i) ) q = d[i][q];
    fout << q << '\n';
}

int main()
{
    fin >> n >> m;
    for ( int i = 1; i <= n; i++ )
        fin >> d[0][i];
    for ( int i = 1; i <= LogMax; i++ )
        for ( int  j = 1; j <= n; j++ )
            d[i][j] = d[i - 1][d[i - 1][j]];
    for ( int i = 1; i <= m; i++ )
    {
        fin >> q >> p;
        query(q, p);
    }

    return 0;
}