Pagini recente » Cod sursa (job #1256519) | Cod sursa (job #984088)
Cod sursa(job #984088)
#include <fstream>
#include <cmath>
#define maxn 250001
#define maxlogn 18
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int t[maxn][maxlogn];
int n,m,Q,P;
int main()
{
fin>>n>>m;
for (int i=1; i<=n; ++i) fin>>t[i][0];
int log = log2(n);
for (int j=1; j<=log; ++j)
{
for (int i=1; i<=n; ++i)
{
t[i][j] = t[t[i][j-1]][j-1];
}
}
for (int i=1; i<=m; ++i)
{
fin>>Q>>P;
log=log2(P);
for (int j=log; j>=0; --j)
if ((1<<j)&P) Q = t[Q][j];
fout<<Q<<"\n";
}
}