Pagini recente » Cod sursa (job #238720) | Cod sursa (job #1018764) | Cod sursa (job #2458169) | Cod sursa (job #1675145) | Cod sursa (job #2801546)
#include <fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
const int N=25e4+1;
const int LOG=18;
int n,q,p,nod,i;
int v[N],d[N][LOG];
int main()
{
fin>>n>>q;
for(i=1; i<=n; i++)
fin>>v[i];
for(nod=1; nod<=n; nod++)
{
d[nod][0]=v[nod];
for(i=1; i<LOG; i++)
d[nod][i]=d[d[nod][i-1]][i-1];
}
while(q--)
{
fin>>nod>>p;
for(i=LOG-1; i>=0; i--)
if(p&(1<<i))
nod=d[nod][i];
fout<<nod<<'\n';
}
fout<<'\n';
return 0;
}