Cod sursa(job #1308184)

Utilizator ClaudiuHHiticas Claudiu ClaudiuH Data 3 ianuarie 2015 18:50:37
Problema Fractal Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("fractal.in");
ofstream fout("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(x, y, 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;
        fin>>ordin>>x>>y;
        fout<<fractal(x,y,ordin);
        return 0;
   }