Pagini recente » Cod sursa (job #425530) | Cod sursa (job #2752316) | Cod sursa (job #733945) | Cod sursa (job #116766) | Cod sursa (job #2021155)
#include <bits/stdc++.h>
using namespace std;
ofstream fout ("stramosi.out");
ifstream fin ("stramosi.in");
int rsp[19][250005],lg[250005],i,j,n,m,aux,p,q,suma;
int main()
{
fin>>n>>m;
for( i = 1 ; i <= n ; i++ )
fin>>rsp[ 0 ][ i ];
for( i = 2 ; i <= 250000 ; i++ )
lg[ i ] = lg[ i / 2 ] + 1;
for( i = 1 ; i <= 18 ; i++ )
{
for( j = 1 ; j <= n ; j++ )
{
rsp[ i ][ j ] = rsp[ i - 1 ][ rsp[ i - 1 ][ j ] ];
}
}
for( i = 1 ; i <= m ; i++ )
{
fin>>p>>q;
suma = q;
while( suma )
{
aux = lg[ suma ];
suma -= ( 1 << aux );
if( suma == 0 )
{
fout<<rsp[ aux ][ p ]<<'\n';
break;
}
p = rsp[ aux ][ p ];
}
}
}