Pagini recente » Cod sursa (job #118319) | Cod sursa (job #1913632) | Cod sursa (job #831401) | Cod sursa (job #703548) | Cod sursa (job #2774471)
#define MAX_N 250000
#define MAX_LOG_N 17
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n, m, T[MAX_N + 1][MAX_LOG_N + 1];
int main()
{
fin >> n >> m;
for (int i = 1; i <= n; ++i)
{
fin >> T[i][0];
}
for (int e = 1; (1 << e) <= n; ++e)
{
for (int i = 1; i <= n; ++i)
{
T[i][e] = T[T[i][e - 1]][e - 1];
}
}
for (int i = 1; i <= m; ++i)
{
int dist, node;
fin >> node >> dist;
for (int e = 0; (1 << e) <= dist; ++e)
{
if ((dist >> e) & 1)
{
node = T[node][e];
}
}
fout << node << '\n';
}
fin.close();
fout.close();
return 0;
}