Pagini recente » Cod sursa (job #2353682) | Cod sursa (job #2639125) | Cod sursa (job #2178523) | Cod sursa (job #2096562) | Cod sursa (job #1783177)
#include <cstdio>
using namespace std;
int s[20][250005];
inline int stramos(int str, int k)
{
int i=0;
while(k!=0)
{
if(k%2==1)
str=s[i][str];
k/=2;
i++;
}
return str;
}
int main()
{ freopen("stramosi.in", "r",stdin);
freopen("stramosi.out", "w",stdout);
int n,m,i,j,q,p;
scanf("%d%d", &n, &m);
for(i=1; i<=n; i++)
scanf("%d", &s[0][i]);
for(i=1; i<=18; i++)
for(j=1; j<=n; j++)
s[i][j]=s[i-1][s[i-1][j]];
for(i=1; i<=m; i++){
scanf("%d%d", &q, &p);
printf("%d\n", stramos(q,p));
}
return 0;
}