Pagini recente » Cod sursa (job #2155139) | Cod sursa (job #371826) | Cod sursa (job #964948) | Cod sursa (job #3343963) | Cod sursa (job #3310339)
#include <bits/stdc++.h>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n, m, dp[20][250005], p, q, t;
int pwr[250005];
int main()
{
f >> n >> m;
for (int i=1; i<=n; ++i) {
f >> dp[0][i];
}
// pwr[1] = 0;
// for (int i=2; i<=n; ++i)
// pwr[i] = pwr[i/2] + 1;
for (int p=1; p<=17; ++p)
for (int i=1; i<=n; ++i)
dp[p][i] = dp[p-1][ dp[p-1][i] ];
for (int i=1; i<=m; ++i) {
f >> q >> p;
while (p){
t = p & (-p);
q = dp[ (int)log2(t) ][q];
p -= t;
}
g << q << '\n';
}
return 0;
}