Pagini recente » Cod sursa (job #1846070) | Cod sursa (job #144554) | Cod sursa (job #2496296) | Cod sursa (job #1168435) | Cod sursa (job #96395)
Cod sursa(job #96395)
#include<stdio.h>
#include<string.h>
long n, m, p, q, nr;
typedef struct
{
int a, b;
} vect;
vect v[250024];
long long cautare(int a, int b)
{
long long i, rez=b;
while (a>=2)
{
rez=v[rez].b;
if (rez==0) return 0;
a-=2;
}
if (a) rez=v[rez].a;
return rez;
}
int main()
{
long i, rez;
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%ld%ld",&n,&m);
long aux;
char sir[250024];
fgetc(stdin); fgetc(stdin);
fgets(sir, 250024,stdin);
aux=strlen(sir);
nr=1;
for (i=0; i<aux; i++)
{
if (sir[i]>='0' && sir[i]<='9')
v[nr].a=v[nr].a*10+sir[i]-'0';
if (sir[i]==' ') nr++;
}
for (i=1; i<=nr; i++)
v[i].b=v[v[i].a].a;
for (i=1; i<=m; i++)
{
scanf("%ld%ld",&q,&p);
rez=cautare(p,q);
printf("%ld\n",rez);
}
return 0;
}