Pagini recente » Cod sursa (job #1254317) | Cod sursa (job #1205483) | Cod sursa (job #1513339) | Cod sursa (job #2813903) | Cod sursa (job #2627359)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
const int nmax = 250000;
int n, m, dp[nmax + 5][19];
int main()
{
fin >> n >> m;
for (int i = 1; i <= n; ++i)
{
fin >> dp[i][0];
}
for (int j = 1; j <= 18; ++j)
{
for (int i = 1; i <= n; ++i)
{
dp[i][j] = dp[dp[i][j - 1]][j - 1];
}
}
while (m--)
{
int p, q;
fin >> q >> p;
int stramos = q, c = 0;
while (p > 0)
{
if (p % 2 == 1)
{
stramos = dp[stramos][c];
}
p = p / 2;
++c;
}
fout << stramos << "\n";
}
fin.close();
fout.close();
return 0;
}