Pagini recente » Cod sursa (job #1112258) | Cod sursa (job #1604667) | Cod sursa (job #2509123) | Cod sursa (job #915926) | Cod sursa (job #726617)
Cod sursa(job #726617)
#include<stdio.h>
#include<vector>
#define infile "stramosi.in"
#define outfile "stramosi.out"
#define nmax 250002
using namespace std;
int a[nmax];
int n,m;
vector<int> g[nmax];
void rsolve()
{
int x,p;
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d ",&a[i]);
for(int i=1;i<=n;++i)
{
x=a[i];
while(x)
{
g[i].push_back(x);
x=a[x];
}
}
for(int i=1;i<=m;i++)
{
scanf("%d %d",&x,&p);
if(g[x].size()<p)
printf("0\n");
else
printf("%d\n",g[x][p-1]);
}
}
int main()
{
freopen(infile,"r",stdin);
freopen(outfile,"w",stdout);
rsolve();
fclose(stdin);
fclose(stdout);
return 0;
}