Pagini recente » Cod sursa (job #2003719) | Cod sursa (job #2641179) | Cod sursa (job #2921830) | Cod sursa (job #2296049) | Cod sursa (job #3183117)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("stramosi.in");
ofstream fout ("stramosi.out");
const int NMAX = 250002;
int n, m, dp[19][NMAX];
void citire()
{
fin >> n >> m;
for (int j = 1; j <= n; j++)
fin >> dp[0][j];
}
int main()
{
citire();
for (int i = 1; i <= 17; i++)
for (int j = 1; j <= n; j++)
dp[i][j] = dp[i-1][dp[i-1][j]];
for (int k = 1; k <= m; k++)
{
int q, p;
fin >> q >> p;
for (int i = 17; i >= 0; i--)
{
if((1<<i) <= p)
{
q = dp[i][q];
p = p - (1<<i);
}
}
fout << q << "\n";
}
return 0;
}