Pagini recente » Cod sursa (job #1201989) | Borderou de evaluare (job #1008090) | Cod sursa (job #2512736) | Cod sursa (job #3123355) | Cod sursa (job #2148017)
#include<fstream>
using namespace std;
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int K, X, Y;
long long Sol = 0;
int solve( int N, int X, int Y ){
if( N == 2 ){
if( X == 2 && Y == 1 )
return 1;
if( X == 2 && Y == 2 )
return 2;
if( X == 1 && Y == 2 )
return 3;
return 0;
}
int M = N / 2;
if( X <= M && Y <= M )
return solve( M, Y, X );
if( X <= M && Y > M )
return 3 * M * M + solve( M, M - (Y - M) + 1, M - X + 1 );
if( X > M && Y <= M )
return M * M + solve( M, X - M, Y );
if( X > M && Y > M )
return 2 * M * M + solve( M, X - M, Y - M );
}
int main(){
fin >> K >> Y >> X;
fout << solve( (1<<K), X, Y );
return 0;
}