Cod sursa(job #2719751)

Utilizator KPP17Popescu Paul KPP17 Data 10 martie 2021 11:40:40
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.51 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[log(N)][N];
int main()
{
    int n, m; in >> n >> m; for (int i = 1; i <= n; i++) in >> (*L)[i];
    for (int p = 1, ln = log(n); p < ln; p++) for (int i = 1; i <= n; i++) L[p][i] = L[p-1][ L[p-1][i] ];
    while (m--) {int i, s; in >> i >> s; for (int p = 0; s; p++, s >>= 1) if (s & 1) i = L[p][i]; out << i << '\n';}
}