Pagini recente » Cod sursa (job #815628) | Cod sursa (job #1420713) | Cod sursa (job #3204236) | Cod sursa (job #890061) | Cod sursa (job #2523961)
#include <bits/stdc++.h>
using namespace std;
ifstream fin( "stramosi.in" );
ofstream fout( "stramosi.out" );
int n, m, nod, ord;
int q[300010];
int s[250010][40];
int main()
{
fin >> n >> m;
for( int i = 1; i <= n; i++ )
{
fin >> q[i];
s[i][0] = q[i];
}
for( int k = 1; ( 1 << k ) <= n; k++ )
for( int i = 1; i <= n; i++ )
s[i][k] = s[s[i][k - 1]][k - 1];
for( int i = 1; i <= m; i++ )
{
fin >> nod >> ord;
for( int cat = 0; ( 1 << cat ) <= ord; cat ++ )
if( ord & ( 1 << cat ) )
nod = s[nod][cat];
fout << nod << '\n';
}
return 0;
}