Pagini recente » Cod sursa (job #1271014) | Cod sursa (job #2829332) | Cod sursa (job #2160281) | Cod sursa (job #44680) | Cod sursa (job #2977231)
#include <bits/stdc++.h>
#define NMAX 250008
using namespace std;
ifstream fin ("stramosi.in");
ofstream fout ("stramosi.out");
int n, m, stramos[NMAX][20], nivel[NMAX];
vector <int> G[NMAX];
void DFS(int nod);
int query(int nod, int p);
int main()
{
int x, y;
fin >> n >> m;
for (int i = 1; i <= n; i++)
{
fin >> x;
stramos[i][0] = x;
}
for (int j = 1; (1 << j) <= n; j++)
for (int i = 1; i <= n; i++)
stramos[i][j] = stramos[stramos[i][j-1]][j-1];
for (int i = 1; i <= m; i++)
{
fin >> x >> y;
while (y)
{
int lg = int(log2(y));
x = stramos[x][lg];
y = y - (1 << lg);
}
fout << x << '\n';
}
return 0;
}