Pagini recente » Cod sursa (job #2017771) | Cod sursa (job #1175840) | Cod sursa (job #1022866) | Cod sursa (job #2305983) | Cod sursa (job #2021154)
#include <bits/stdc++.h>
using namespace std;
ofstream fout ("stramosi.out");
ifstream fin ("stramosi.in");
int rsp[17][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 <= 16 ; 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 ];
}
}
}