Pagini recente » Cod sursa (job #2927480) | Cod sursa (job #1750567) | Cod sursa (job #2663648) | Cod sursa (job #38178) | Cod sursa (job #416759)
Cod sursa(job #416759)
#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;
int main()
{in;
out;
scanf("%ld %ld",&n,&m);
long i,x,p,q;
for(i=1;i<=n;++i)
{scanf("%ld",&x);
S[i]=S[x];
if(x>0)
S[i].push_back(x);
}
IT it;
for(;m;--m)
{scanf("%ld %ld",&q,&p);
if(p>S[q].size())
printf("%ld\n",0);
else{it=S[q].end();
//--it;
for(;it!=S[q].begin()&&p>0;it--,p--);
//++it;
printf("%ld\n",*(it));
}
}
return 0;
}