Pagini recente » Cod sursa (job #2313114) | Cod sursa (job #1063994) | Cod sursa (job #2848435) | Cod sursa (job #1541744) | Cod sursa (job #2557863)
#include <bits/stdc++.h>
#define DAU ios::sync_with_stdio(false); fin.tie(0); fout.tie(0);
#define PLEC fin.close(); fout.close(); return 0;
using namespace std;
using VI = vector<int>;
using VVI = vector<VI>;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n, q, x, k, res;
VVI t;
int main()
{
DAU
fin >> n >> q;
t = VVI(20, VI(n + 2));
for (int i = 1; i <= n; ++i)
fin >> t[0][i];
for (int p = 18; p; --p)
for (int i = 1; i <= n; ++i)
t[p][i] = t[p-1][t[p-1][i]];
while (q--)
{
fin >> x >> k;
res = x;
for (int p = 18; p >= 0 && k; --p)
if ((1 << p) <= k)
{
k -= (1 << p);
res = t[p][res];
}
fout << res << '\n';
}
PLEC
}