Cod sursa(job #862768)

Utilizator thesilverhand13FII Florea Toma Eduard thesilverhand13 Data 22 ianuarie 2013 22:08:44
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
 # 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;
 }