Cod sursa(job #2719745)

Utilizator KPP17Popescu Paul KPP17 Data 10 martie 2021 11:32:59
Problema Stramosi Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <fstream>
#define mF "stramosi"
std::ifstream in(mF ".in");
std::ofstream out(mF ".out");
constexpr int log(int e) {return e? log(e >> 1) + 1: 1;}
const int N = 250001; int L[N][log(N)];
int main()
{
    int n, m; in >> n >> m; for (int i = 1; i <= n; i++) {int t; in >> t; *(L[i]) = t;}
    for (int p = 1, ln = log(n); p < ln; p++) for (int i = 1; i <= n; i++) L[i][p] = L[ L[i][p-1] ][p-1];
    while (m--) {int i, s; in >> i >> s; for (int p = 0; s; p++, s >>= 1) if (s & 1) i = L[i][p]; out << i << '\n';}
}