Pagini recente » Cod sursa (job #1641352) | Cod sursa (job #3296628) | Cod sursa (job #2171830) | Cod sursa (job #1942086) | Cod sursa (job #3321881)
#include <iostream>
#include <fstream>
#include <stack>
#include <queue>
#include <cmath>
#include <algorithm>
#include <set>
#include <cstring>
#include <map>
#include <string>
#include <bitset>
#include <unordered_map>
#include <unordered_set>
#define oo 2000000000
#define MOD 123457
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n, m, x,y;
int dp[19][250005];
int query(int q, int p)
{
int x = q;
int poz = 0;
while (p)
{
if (p%2==1)
{
x = dp[poz][x];
}
poz++;
p /= 2;
}
return x;
}
int main()
{
fin >> n >> m;
for (int i = 1; i <= n; i++)
{
fin >> dp[0][i];
}
for (int i = 1; (1 << i) <= n; i++)
{
for (int j = 1; j <= n; j++)
{
dp[i][j] = dp[i - 1][dp[i - 1][j]];
}
}
for (int i = 1; i <= m; i++)
{
fin >> x >> y;
fout << query(x, y)<<endl;
}
}