Pagini recente » Cod sursa (job #1499797) | Cod sursa (job #321902) | Cod sursa (job #2498414) | Cod sursa (job #2383719) | Cod sursa (job #3184726)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("stramosi.in");
ofstream g ("stramosi.out");
const int NMAX = 25e4;
const int LMAX = 19;
int v[NMAX+1];
int str[NMAX+1][LMAX+1];
int query(int q, int p){
for(int j=LMAX; j>=0; j--)
if((1 << j) & p)
q = str[q][j];
return q;
}
int main()
{
int n, t;
f >> n >> t;
for(int i=1; i<=n; i++)
f >> v[i], str[i][0] = v[i];
for(int j=1; j<=LMAX; j++)
for(int i=1; i<=n; i++)
str[i][j] = str[str[i][j-1]][j-1];
for(int i=1; i<=t; i++){
int q, p;
f >> q >> p;
g << query(q, p) << "\n";
}
return 0;
}