Pagini recente » Cod sursa (job #1123094) | Cod sursa (job #277092) | Cod sursa (job #1856787) | oni201311-12ziua1 | Cod sursa (job #1845161)
#include <fstream>
using namespace std;
ifstream in ("stramosi.in");
ofstream out ("stramosi.out");
const int LOG = 25;
const int N = 250005;
int p[N][LOG];//p[i][j] = stram cu 2^j niv mai sus ca i
int main()
{
int i, j, n, q;
in >> n >> q;
for(i = 1; i <= n; i++)
in >> p[i][0];
for(j = 1; (1<<j) < n; j++)
for(i = 1; i <= n; i++)
p[i][j] = p[p[i][j-1]][j-1];
int a, b;
for(int k = 1; k <= q; k++)
{
in>> a >> b;
//al b-ulea stramos al lui a
j = 20;
while(j>=0)
{
if((1<<j) <= b)
{
b -= (1<<j);
a = p[a][j];
}
j--;
}
out<<a<<"\n";
}
return 0;
}