Pagini recente » Cod sursa (job #2343197) | Cod sursa (job #645366) | Cod sursa (job #2918624) | Cod sursa (job #3004456) | Cod sursa (job #2612795)
#include <fstream>
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
#define MAXN 2500005
#define P 18
int v[100][150];
int d[P][MAXN];
int main()
{
int n, t;
cin >> n >> t;
for (int i = 1; i <= n; i++)
cin >> d[0][i];
for (int i = 1; i < P; i++)
for (int j = 1; j <= n; j++)
d[i][j] = d[i - 1][d[i - 1][j]];
int ans = 0;
int x, y, k = 0;
while(t--)
{
k = 0;
cin >> x >> y;
ans = x;
while(y)
{
if (y % 2 != 0)
ans = d[k][ans];
y /= 2;
k++;
}
cout << ans << "\n";
}
return 0;
}