Pagini recente » Cod sursa (job #811361) | Cod sursa (job #675950) | Cod sursa (job #1459480) | Cod sursa (job #2704124) | Cod sursa (job #778374)
Cod sursa(job #778374)
#include<fstream>
#include<cstring>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n,nq,i,j,k;
int a[20][250001];
char buff[1500001];
int q,x,nrc;
int get_number()
{int nrn=0;
while(buff[nrc]<='9' && buff[nrc]>='0')
{nrn=nrn*10+buff[nrc]-'0';
nrc++;}
return nrn;
}
int main()
{f.getline(buff,30);
nrc=0;
n=get_number();
nrc++;
nq=get_number();
f.getline(buff,1500001);
nrc=0;
for(i=1; i<=n; i++)
{a[0][i]=get_number();
nrc++;}
for(j=1; j<=n; j++)
for(i=1; i<=18; i++)
{if(a[i-1][a[i-1][j]])
a[i][j]=a[i-1][a[i-1][j]];
else
break;}
for(i=1; i<=nq; i++)
{f.getline(buff,30);
nrc=0;
x=get_number();
nrc++;
q=get_number();
j=0;
while(q)
{if(q&1)
x=a[j][x];
j++;
q=q>>1;}
g<<x<<endl;
}
return 0;
}