Cod sursa(job #1867467)

Utilizator UMihneaUngureanu Mihnea UMihnea Data 4 februarie 2017 09:48:52
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <bits/stdc++.h>

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

int m, n, q, i, j, k, S[18][250010];

int main()
{
    f >> n >> q;
    m = 31-__builtin_clz(n);
    for(i = 1; i <= n; i++)
        f >> S[i][0];
    for(i = 1; i <= m; i++)
        for(j = 1; j <= n; j++)
            S[i][j] = S[i-1][S[i-1][j]];
    for(;q;q--)
    {
        f>>j>>i;
        while(i)
        {
            k = __builtin_ctz(i);
            j = S[k][j];
            i -= 1<<k;
        }
        g << j << '\n';
    }
    return 0;
}