Pagini recente » Cod sursa (job #447204) | Cod sursa (job #1074842) | Cod sursa (job #3222765) | Cod sursa (job #361577) | Cod sursa (job #862768)
Cod sursa(job #862768)
# include <fstream>
# include <cstring>
# include <algorithm>
# include <vector>
# define dim 22
# define dim2 250005
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int a[ dim ][ dim2 ];
int N, M;
int nod, nr;
int sol;
void afisare()
{
int i, j;
for ( i = 0 ; i <= 20 ; i++ )
{
for ( j = 1 ; j <= N ; j++ )
g << a[ i ][ j ] << " " ;
g << "\n";
}
}
void prep()
{
int i, j;
for ( i = 1 ; i <= 20 ; i++ )
{
for ( j = 1 ; j <= N ; j++ )
a[ i ][ j ] = a[ i - 1 ][ a[ i - 1 ][ j ] ] ;
}
// afisare();
}
void rezolva()
{
int putere = 0;
sol = nod;
while ( nr != 0 )
{
if ( nr & 1 )
sol = a[ putere ][ sol ];
putere++;
nr = nr >> 1;
}
g << sol << "\n";
}
void citire()
{
int i;
f >> N >> M;
for ( i = 1 ; i <= N ; i++ )
f >> a[ 0 ][ i ];
prep();
for ( i = 1 ; i <= M ; i++ )
{
f >> nod >> nr;
rezolva();
}
}
int main()
{
citire();
return 0;
}