Cod sursa(job #1284777)

Utilizator tudorcomanTudor Coman tudorcoman Data 6 decembrie 2014 20:00:39
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <cstdio>

using namespace std;

int arie( int x )
{
    return x * x ;
}

int fractal( int x , int y , int ordin )
{
    if ( ordin < 0 )
        return 0 ;

    int lung = 1 << ordin ;

    if ( x <= lung && y <= lung )
        return fractal ( y , x , ordin - 1 ) ;

    else if ( x > lung && y <= lung )
        return arie ( lung ) + fractal( x - lung , y , ordin - 1 ) ;

    else if ( x > lung && y > lung )
        return 2 * arie ( lung ) + fractal( x - lung ,  y - lung , ordin - 1 ) ;

    else
        return  3 * arie ( lung ) + fractal( ( lung << 1 ) - y + 1 , lung - x + 1 ,  ordin - 1 ) ;
}

int main()
{
    freopen("fractal.in","r",stdin);
    freopen("fractal.out","w",stdout);
    int o, x , y ;
    scanf("%d%d%d",&o,&x,&y);
    printf("%d\n",fractal(x,y,o));
    return 0;
}