Cod sursa(job #2964677)

Utilizator maiaauUngureanu Maia maiaau Data 13 ianuarie 2023 17:15:24
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <bits/stdc++.h>
using namespace std;

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

const int N = 25e4 + 5;

int n, m, p, q, s[18][N];

int main()
{
    f >> n >> m;
    for (int i = 1; i <= n; i++) f >> s[0][i];
    int pw = 2, k = 1;
    while (pw <= n){
        for (int i = 1; i <= n; i++) s[k][i] = s[k - 1][s[k - 1][i]];
        pw *= 2; k++;
    }
    for (; m; m--){
        f >> q >> p;
        int i = p&(-p);
        while (i){
            q = s[__builtin_ctz(i)][q];
            p -= i; i = p & (-p);
        }
        g << q << '\n';
    }
    
    
    return 0;
}