Pagini recente » Cod sursa (job #418594) | Cod sursa (job #2398229) | Cod sursa (job #2625453) | Cod sursa (job #2715165) | Cod sursa (job #639692)
Cod sursa(job #639692)
#include<cstdio>
#include<fstream>
using namespace std;
int x[18][250001];
int stramos ( int q , int lung )
{
int i = 0;
while ( lung )
{
if ( lung % 2 != 0 )
q = x[i][q];
lung /= 2 ;
++i;
}
return q ;
}
int main ( )
{
ifstream f("stramosi.in");
ofstream g("stramosi.out");
// freopen ( "stramosi.in", "r" , stdin ) ;
// freopen ( "stramosi.out", "w", stdout ) ;
int n , m , i , j ;
int p , q;
f>>n>>m;
//scanf ( "%d%d", & n , & m ) ;
for ( i = 1 ; i <= n ; ++ i )
f>>x[0][i];
//scanf ( "%d", & x[0][i] ) ;
for ( i = 1 ; i <= n ; ++ i )
for ( j = 1 ; j <= n ; ++ j )
x[i][j] = x[i-1][x[i-1][j]] ;
for ( i = 1 ; i <= m ; ++ i )
{
f>>p>>q;
//scanf ( "%d%d", & p , & q ) ;
g<<stramos(p,q)<<"\n";
//printf ( "%d\n" , stramos ( p , q ) ) ;
}
return 0 ;
}