Pagini recente » Cod sursa (job #2131546) | Cod sursa (job #390763) | Cod sursa (job #2791445) | Cod sursa (job #1501242) | Cod sursa (job #2275701)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("stramosi.in");
ofstream fout ("stramosi.out");
int str[250001][19], i, j, T[250001], n, m;
int c (int i, int j)
{
int p = 1, k = 0;
if (j == 0) return i;
else {
while(p <= j)
{
p *= 2;
k++;
}
p /= 2;
k--;
return c(str[i][k], j - p);
}
}
int main()
{
fin >> n >> m;
for (i=1; i<=n; i++)
{
fin >> str[i][0];
T[i] = str[i][0];
}
for (i=1; i<=n; i++)
for (j=1; j<18; j++)
str[i][j] = str[str[i][j-1]][j-1];
while(m--)
{
fin >> i >> j;
fout << c(i, j) << "\n";
}
return 0;
}