Pagini recente » Cod sursa (job #2960613) | Cod sursa (job #1305734) | Cod sursa (job #1469436) | Cod sursa (job #3127080) | Cod sursa (job #2901212)
#include <fstream>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
const int Nmax = 250005, Lmax = 19;
int dp[Lmax][Nmax];
int N, M, x, y, ans, step;
int main()
{
in >> N >> M;
for(int i = 1; i <= N; ++i)
in >> dp[0][i];
for(int j = 1; j < Lmax; ++j)
for(int i = 1; i <= N; ++i)
dp[j][i] = dp[j - 1][dp[j - 1][i]];
while(M--)
{
in >> x >> y;
ans = x;
step = 0;
while(y)
{
if(y & 1)
ans = dp[step][ans];
step++;
y >>= 1;
}
out << ans << '\n';
}
return 0;
}