Pagini recente » Cod sursa (job #2087107) | Cod sursa (job #1390685) | Cod sursa (job #2492248) | Cod sursa (job #522498) | Cod sursa (job #2901462)
#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()
{
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;
}