Cod sursa(job #1867458)

Utilizator UMihneaUngureanu Mihnea UMihnea Data 4 februarie 2017 09:38:28
Problema Stramosi Scor 90
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[250010][18];

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[j][i] = S[S[j][i-1]][i-1];
    for(;q;q--)
    {
        f>>j>>i;
        while(i)
        {
            k = __builtin_ctz(i);
            j = S[j][k];
            i -= 1<<k;
        }
        g << j << '\n';
    }
    return 0;
}