Pagini recente » Cod sursa (job #1047093) | Cod sursa (job #2420389) | Cod sursa (job #3268993) | Cod sursa (job #3187900) | Cod sursa (job #124194)
Cod sursa(job #124194)
#include<stdio.h>
#define N 260000
#define M 310000
int n,m,v[N],k1;
char sir[N];
struct vec
{
int x,nrp;
}p[M];
void read()
{
int i,x,ind,bn;
scanf("%d%d",&n,&m);
/*for(i=1;i<=n;++i)
scanf("%d",&v[i]);*/
scanf("%c",&bn);
fgets(sir, N, stdin), x = ind = 0;
while(k1<n)
{
for(; sir[ind] >= '0' && sir[ind] <= '9'; ind++)
x = x*10+(sir[ind]-'0');
/*for(int i=1;i<=m;i++)
scanf("%d",&nr[i]);*/
v[++k1]=x;
++ind;
x=0;
}
for(i=1;i<=m;++i)
scanf("%d%d",&p[i].x,&p[i].nrp);
}
void apel(int x,int nrp,int nr)
{
/*if(nr==nrp)
{
printf("%d\n",x);
return;
}
else
apel(v[x],nrp,++nr);*/
while(nr<nrp)
{
x=v[x];
nr++;
}
printf("%d\n",x);
}
void solve()
{
int i;
for(i=1;i<=m;++i)
apel(p[i].x,p[i].nrp,0);
}
int main()
{
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
read();
solve();
return 0;
}