Cod sursa(job #1282722)

Utilizator gedicaAlpaca Gedit gedica Data 4 decembrie 2014 17:48:01
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>

using namespace std;

ifstream in( "fractal.in" );
ofstream out( "fractal.out" );

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 and y <= lung )
        return fractal ( y , x , ordin - 1 ) ;

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

    else if ( x > lung and 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()
{
    int ordin, x , y ;
    in >> ordin >> x >> y ;
    out << fractal ( x , y , ordin ) ;
    return 0;
}