Pagini recente » Cod sursa (job #1657818) | Cod sursa (job #2458565) | Cod sursa (job #2580613) | Cod sursa (job #631900) | Cod sursa (job #1547601)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
long a[21][250001], i, j, n, m, k, p, q;
void dfs(int pas, int q) {
if (pas!=0)
dfs(pas-1, a[0][q]);
else
g<<q<<"\n";
}
int main()
{
f>>n>>m;
int l;
for (i=1;i<=n;i++)
f>>a[0][i];
/*for (i=1;i<=18;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;
dfs(p, q);
/* 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 = log(p)/log(2);
q = a[l][q];
p = p - pow(2,l);
}
g<<q<<"\n";*/
}
//g<<q<<"\n";
//}
return 0;
}