Pagini recente » Cod sursa (job #1235125) | Cod sursa (job #2845060) | Cod sursa (job #2617580) | Cod sursa (job #1287455) | Cod sursa (job #2796909)
#include <vector>
#include <fstream>
#include <bitset>
#include <iostream>
using namespace std;
const int N=250005;
int stramosi[19][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<19;j++)
stramosi[i][j]=stramosi[stramosi[i][j-1]][j-1];
}
for(int i=0;i<m;i++){
in>>x>>y;
int k= (1<<18) ;
for(int j=18;j>=0;j--){
if(y>=k) {
y-=k;
x=stramosi[x][j];
}
k/=2;
}
out<<x<<"\n";
}
}