Pagini recente » Cod sursa (job #576368) | Cod sursa (job #1798572) | Cod sursa (job #576621) | Cod sursa (job #1905545) | Cod sursa (job #2796333)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("stramosi.in");
ofstream fout ("stramosi.out");
const int NMAX=250010;
const int LMAX=20;
int n,m,dp[NMAX][LMAX];
int main()
{
fin >>n>>m;
for (int i=1;i<=n;++i){
fin >>dp[i][0];
}
for (int i=1;i<=n;++i){
for (int j=1;j<LMAX;++j){
dp[i][j]=dp[dp[i][j-1]][j-1];
}
}
for (int i=1;i<=m;++i){
int k,p;
fin >>k>>p;
for (int j=LMAX;j>=0;--j){
if (p&(1<<j)){
k=dp[k][j];
}
}
fout <<k<<'\n';
}
fin.close ();
fout.close ();
return 0;
}