Cod sursa(job #1195360)

Utilizator tudormaximTudor Maxim tudormaxim Data 6 iunie 2014 22:47:04
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#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;
}