Pagini recente » Cod sursa (job #809558) | Cod sursa (job #2183021) | Cod sursa (job #3188694) | Cod sursa (job #2590483) | Cod sursa (job #416774)
Cod sursa(job #416774)
#include<stdio.h>
#include<deque>
#include<list>
#include<vector>
#define NMAX 250001
#define in freopen("stramosi.in","r",stdin)
#define out freopen("stramosi.out","w",stdout)
using namespace std;
typedef list<long> ST;
typedef ST::iterator IT;
ST S[NMAX];
long n,m;
long df(long k,long lg,long p)
{if(lg==p)
return k;
else
if(S[k].empty())
return 0;
else
return df(S[k].front(),lg+1,p);
}
int main()
{in;
out;
scanf("%ld %ld",&n,&m);
long i,x,q,p;
for(i=1;i<=n;++i)
{scanf("%ld",&x);
if(x>0)
{S[i].push_back(x);
}
}
IT it;
for(;m;--m)
{scanf("%ld %ld",&q,&p);
printf("%ld \n",df(q,0,p));
}
return 0;
}