Pagini recente » Cod sursa (job #636860) | Cod sursa (job #3121624) | Cod sursa (job #311306) | Cod sursa (job #2357436) | Cod sursa (job #1547508)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int a[250001][21], i, j, n, m, k, p, v[250001], q;
int main()
{
f>>n>>m;
int l;
for (i=1;i<=n;i++)
f>>a[0][i];
for (i=1;i<=log2(n);i++)
for (j=1;j<=n;j++)
a[i][j] = a[i-1][a[i-1][j]];
for (i=1;i<=m;i++) {
f>>q>>p;
/* while (p!=0) {
l = log2(p);
q = a[l][q];
p = p - pow (2, l);
}*/
if (log2(p) == (int) log2(p))
g<<a[(int)log2(p)][q]<<"\n";
else {
while (p!=0) {
l = log2(p);
q = a[l][q];
p = p - pow (2, l);
}
g<<a[l][q]<<"\n";
}
//g<<q<<"\n";
}
return 0;
}