Pagini recente » Cod sursa (job #22882) | Cod sursa (job #2099250) | Cod sursa (job #2647) | Cod sursa (job #1752779) | Cod sursa (job #2892984)
#include <fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n, m;
int A[19][250003];
int membru, nr;
int main()
{
A[0][0] = 0;
fin >> n >> m;
for(int i = 1; i <= n; i++)
fin >> A[0][i];
for(int i = 1; i <= 18; i++)
for(int j = 1; j <= n; j++)
A[i][j] = A[i - 1][A[i - 1][j]];
for(int i = 1; i <= m; i++)
{
fin >> membru >> nr;
int sol = 0;
while(nr > 0)
{
if(nr % 2 == 1) membru = A[sol][membru];
sol++;
nr /= 2;
}
fout << membru << '\n';
}
return 0;
}