Pagini recente » Cod sursa (job #2400652) | Cod sursa (job #2038678) | Cod sursa (job #2927314) | Cod sursa (job #2098635) | Cod sursa (job #980428)
Cod sursa(job #980428)
#include<stdio.h>
#include<vector>
#define NMAX 250000
using namespace std;
int d[NMAX+5][20];
int cauta (int v, int cnt) {
int i;
for(i=0; (1<<i) <= cnt; i++);
i--;
if((1<<i)!=cnt)
return cauta(d[v][i],cnt-(1<<i));
return d[v][i];
}
int main() {
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
int n,m,p,q,j,i;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
scanf("%d",&d[i][0]);
for(j=1; (1<<j) <=n ; j++)
for(i=1;i<=n;i++)
d[i][j]=d[d[i][j-1]][j-1];
while(m) {
--m;
scanf("%d%d",&q,&p);
printf("%d\n",cauta(q,p));
}
return 0;
}