Pagini recente » Cod sursa (job #520408) | Cod sursa (job #2031896)
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int k,x,y;
int fractare(int x,int y,int n,int ord)
{
if(ord==0)
return 0;
else if(x>=1&&x<=n/2&&y>=1&&y<=n/2)
return 0+fractare(y,x,n/2,ord-1);
else
if(x>=1&&x<=n/2&&y>n/2&&y<=n)
return n/2*n/2+fractare(x,y-n/2,n/2,ord-1);
else
if(x>n/2&&x<=n&&y>n/2&&y<=n)
return 2*n/2*n/2+fractare(x-n/2,y-n/2,n/2,ord-1);
else
if(x>n/2&&x<=n&&y>=1&&y<=n/2)
return 3*n/2*n/2+fractare(n/2-y+1,n-x+1,n/2,ord-1);
}
int main()
{
fin>>k>>x>>y;
int p=1,aux=0;
while(aux!=k)
{p=p*2;
aux++;}
fout<<fractare(x,y,p,k);
return 0;
}