Pagini recente » Cod sursa (job #1806221) | Cod sursa (job #1280898) | Cod sursa (job #384563) | Cod sursa (job #1044197) | Cod sursa (job #2656446)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("stramosi.in");
ofstream fout ("stramosi.out");
int tt[250001];
int d[18][250001];
int main()
{
int n, m, i, p, log;
fin>>n>>m;
for(i=1; i<=n; i++)
{
fin>>d[0][i];
}
log=0;
while( (1<<log)<=n )
{
log++;
}
log--;
for(p=1; p<=log; p++)
{
for(i=1; i<=n; i++)
{
d[p][i]=d[p-1][ d[p-1][i] ];
}
}
for(i=1; i<=m; i++)
{
int nod, x;
fin>>nod>>x;
for(p=0; p<=log; p++)
{
if( (1<<p) & x )
{
nod=d[p][nod];
}
}
fout<<nod<<"\n";
}
}