Pagini recente » Cod sursa (job #159213) | Cod sursa (job #397546) | Cod sursa (job #408488) | Cod sursa (job #2663129) | Cod sursa (job #2890489)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n, q, dp[35][300005];
int main()
{
fin >> n >> q;
for (int i = 1; i <= n; i++)
fin >> dp[0][i];
for (int pow_2 = 1; pow_2 <= 30; pow_2++)
for (int i = 1; i <= n; i++)
dp[pow_2][i] = dp[pow_2 - 1][dp[pow_2 - 1][i]];
while (q--) {
int nod, nr_stramos;
fin >> nod >> nr_stramos;
int curr_nod = nod, put_2 = 0;
while (nr_stramos) {
if (nr_stramos % 2 == 1)
curr_nod = dp[put_2][curr_nod];
nr_stramos /= 2;
put_2++;
}
fout << curr_nod << '\n';
}
return 0;
}