Pagini recente » Cod sursa (job #2397270) | Cod sursa (job #318556) | Cod sursa (job #3281673) | Cod sursa (job #2494882) | Cod sursa (job #3184723)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("stramosi.in");
ofstream g ("stramosi.out");
const int NMAX = 25e4;
const int LMAX = log(NMAX);
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<=log(n); 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;
}