Pagini recente » Cod sursa (job #1020131) | Cod sursa (job #2899720) | Cod sursa (job #3263166) | Infoarena Monthly 2012 - Runda 7 - Solutii | Cod sursa (job #1424719)
#include <fstream>
using namespace std;
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int ans,k,x,y,v[3][3];
int Put(int x, int y)
{
int ans = 1;
while( y-- )
ans *= x;
return ans;
}
int Solve(int k, int x, int y)
{
int mid = Put( 2 , k - 1 );
if( k == 0 )
return 0;
if( x <= mid && y <= mid )
{
return Solve( k - 1 , y , x );
}
else if( x <= mid && y > mid )
{
return mid * mid * 3 + Solve( k - 1 , 2 * mid - y + 1 , mid - x + 1 );
}
else if( x > mid && y > mid )
{
return mid * mid * 2 + Solve( k - 1 , x - mid , y - mid );
}
else
{
return mid * mid + Solve( k - 1 , x - mid , y );
}
}
int main()
{
fin>>k>>x>>y;
fout<<Solve( k , x , y );
return 0;
}