Pagini recente » Cod sursa (job #2368078) | Cod sursa (job #1313262) | Cod sursa (job #2374290) | Cod sursa (job #2172107) | Cod sursa (job #788733)
Cod sursa(job #788733)
#include<cstdio>
using namespace std;
int m,n,i,j,desc[300001][6],p[250001],q[250001];
int stramos(int membru, int alcpre)
{
int temp=0;
temp=desc[membru][1];
for(j=1;j<alcpre;j++)
{
temp=desc[temp][1];
if(temp==0)
{
break;
}
}
// printf("%d:%d\n",i,temp);
return temp;
}
int main()
{
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{
scanf("%d",&desc[i][1]);
}
for(i=1;i<=m;i++)
{
scanf("%d",&q[i]);
scanf("%d",&p[i]);
}
for(i=1;i<=n;i++)
{
desc[i][2]=stramos(i,10);
desc[i][3]=stramos(i,100);
desc[i][4]=stramos(i,2000);
}
for(i=1;i<=m;i++)
{
// int temp1=p[i];
// int temp2=q[i];
// while(temp1>=2000)
// {
// temp2=desc[temp1][4];
// temp1-=2000;
// }
// while(temp1>=100)
// {
// temp2=desc[temp1][3];
// temp1-=100;
// }
// while(temp1>=10)
// {
// temp2=desc[temp1][2];
// temp1-=10;
// }
// if(temp1==0)
// {
// printf("%d\n",temp2);
// }
// else
printf("%d\n",stramos(q[i],p[i]));
}
fclose(stdin);
fclose(stdout);
return 0;
}