Pagini recente » Cod sursa (job #770452) | Cod sursa (job #470435) | Cod sursa (job #2406510) | Cod sursa (job #2342148) | Cod sursa (job #2719751)
#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';}
}