Pagini recente » Cod sursa (job #480492) | Cod sursa (job #2774762) | Cod sursa (job #379361) | Cod sursa (job #1861417) | Cod sursa (job #2796915)
#include <vector>
#include <fstream>
#include <bitset>
#include <iostream>
using namespace std;
const int N=250005;
int stramosi[18][N];
int main() {
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int n,m,x,y;
in>>n>>m;
for(int i=1;i<=n;i++){
in>>stramosi[i][0];
}
for(int i=1; i<=n;i++){
for(int j=1;j<18;j++)
stramosi[i][j]=stramosi[stramosi[i][j-1]][j-1];
}
for(int i=0;i<m;i++){
in>>x>>y;
int k= (1<<17) ;
for(int j=17;j>=0;j--){
if(y>=k) {
y-=k;
x=stramosi[x][j];
}
k/=2;
}
out<<x<<"\n";
}
}