Cod sursa(job #2603375)

Utilizator Cezar211Popoveniuc Cezar Cezar211 Data 19 aprilie 2020 17:16:46
Problema Stramosi Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <bits/stdc++.h>
#define NM 250005
using namespace std;
ifstream fin ("stramosi.in");
ofstream fout ("stramosi.out");
int n, Q, t[NM][int(log2(NM))+5];
void build()
{
    for(int i=1; i<=log2(n); i++)
    {
        for(int nod=1; nod<=n; nod++)
            t[nod][i] = t[t[nod][i-1]][i-1];
    }
}
int main()
{
    fin >> n >> Q;
    for(int i=1; i<=n; i++)
        fin >> t[i][0];
    build();
    while(Q--)
    {
        int x, c;
        fin >> x >> c;
        while(c)
        {
            int p = log2(c);
            x = t[x][p];
            c-=(1<<p);
        }
        fout << x << '\n';
    }

    return 0;
}