Pagini recente » Cod sursa (job #935145) | Cod sursa (job #1520238) | Cod sursa (job #1076983) | Cod sursa (job #221247) | Cod sursa (job #1792869)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 250000;
const int max_LOG = 18;
int rmq[max_LOG + 5][NMAX + 5],LOG;
int main(){
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n, m, i, j, p, q;
f>>n>>m;
for(i = 1; i <= n; i ++)
f>>rmq[0][i];
LOG=log(n)+1;
for(j = 1; j <= LOG; j ++)
for(i = 1; i <= n; i ++)
rmq[j][i] = rmq[j - 1][rmq[j - 1][i]];
for(i = 1; i <= m; i ++){
f>>q>>p;
for(j = LOG; j >= 0; j--)
if(p & (1 << j))
q = rmq[j][q];
g<<q<<'\n';
}
return 0;
}