Pagini recente » Cod sursa (job #810855) | Cod sursa (job #2842096) | Cod sursa (job #2929687) | Cod sursa (job #916771) | Cod sursa (job #1195360)
#include <cstdio>
using namespace std;
int p[20],x,y,k,s,i,putere;
int fractal (int k,int x, int y)
{
if (k<0)
return 0;
if (x<=p[k]&&y<=p[k])
{
s = fractal (k-1,y,x);
return s;
}
if (x<=p[k]&&y>p[k])
{
s = fractal (k-1,2*p[k]-y+1,p[k]-x+1);
s += (3 * p[k] * p[k]);
return s;
}
if (x>p[k] && y<= p[k])
{
s= fractal (k-1,x-p[k],y);
s += (p[k]*p[k]);
return s;
}
if (x>p[k] && y>p[k])
{
s= fractal (k-1,x-p[k],y-p[k]);
s += (2*p[k]*p[k]);
return s;
}
}
int main ()
{
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
scanf("%d%d%d",&k,&x,&y);
putere=1;
p[0]=1;
for (i=1;i<=k;i++)
{
putere*=2;
p[i]=putere;
}
printf("%d\n",fractal (k,x,y));
return 0;
}