Pagini recente » Cod sursa (job #958536) | Cod sursa (job #113036) | Cod sursa (job #1732075) | Cod sursa (job #1440818) | Cod sursa (job #2719745)
#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';}
}