Cod sursa(job #3273118)

Utilizator Shaan_StefanShaan Stefan Shaan_Stefan Data 1 februarie 2025 10:13:40
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <ctgmath>

#define NMAX 250000

using namespace std;
int n, q, x, dpt;
int rmq[18][NMAX + 2];
int main()
{
    freopen("stramosi.in", "r", stdin);
    freopen("stramosi.out", "w", stdout);

    scanf("%d %d", &n, &q);
    for(int i = 1; i <= n; i++)
        scanf("%d", &rmq[0][i]);

    int lgb = log2(n);
    for(int i = 1; i <= lgb; i++)
        for(int j = 1; j <= n; j++)
            rmq[i][j] = rmq[i-1][rmq[i-1][j]];
        
    

    for(int i = 1; i <= q; i++)
    {
        scanf("%d %d", &x, &dpt);
        int st = x;
        for(int p = int(log2(dpt)); p >= 0 && st != 0; p--)
            if(dpt & (1 << p))
                st = rmq[p][st];
        
        printf("%d\n", st);
    }
    return 0;
}