Pagini recente » Cod sursa (job #2809156) | Cod sursa (job #1024783) | Cod sursa (job #2576011) | Cod sursa (job #1970965) | Cod sursa (job #1199952)
#include <stdio.h>
int rezolv( int k, int a, int b ){
int aux, quad;
if( a <= ( 1 << ( k - 1 ) ) && b <= ( 1 << ( k - 1 ) ) ) quad = 0;
else if( b <= ( 1 << ( k - 1 ) ) ) quad = 1;
else if( a <= ( 1 << ( k - 1 ) ) ) quad = 3;
else quad = 2;
if ( quad == 0 ){
aux = a; a = b; b = aux;
}
else if( quad == 1 ){
a -= ( 1 << ( k - 1 ) );
}
else if( quad == 2 ){
a -= ( 1 << ( k - 1 ) );
b -= ( 1 << ( k - 1 ) );
}
else{
aux = a; a = ( 1 << k ) + 1 - b; b = ( 1 << ( k - 1 ) ) + 1 - aux;
}
int rez = quad * ( 1 << ( 2 * k - 2 ) );
if( k != 1 ){
rez += rezolv( k - 1, a, b );
}
return rez;
}
int main(){
FILE *in = fopen ( "fractal.in", "r" );
int k, a, b;
fscanf ( in, "%d%d%d", &k, &b, &a );
fclose( in );
FILE *out = fopen ( "fractal.out" ,"w" );
fprintf ( out, "%d", rezolv( k, a, b ) );
fclose ( in );
return 0;
}