Cod sursa(job #2030928)

Utilizator mihnea_infomihnea mihnea_info Data 2 octombrie 2017 15:16:51
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <math.h>
#include <fstream>

using namespace std;

int f(int k,short x,short y)
{
    if(k==1)
    {
        if(x==1){
            if(y==1) return 0;
            if(y==2) return 1;
        }
        if(x==2)
        {
            if(y==1) return 3;
            if(y==2) return 2;
        }

    }
    else
    {
        if(x<=pow(2,k-1)&&y<=pow(2,k-1))
            return f(k-1,y,x);
        if(x<=pow(2,k-1)&&y>pow(2,k-1))
            return pow(4,k-1)+f(k-1,x,y-pow(2,k-1));
        if(x>pow(2,k-1)&&y>pow(2,k-1))
            return 2*pow(4,k-1)+f(k-1,x-pow(2,k-1),y-pow(2,k-1));
        if(x>pow(2,k-1)&&y<=pow(2,k-1))
            return 3*pow(4, k-1)+ f(k-1, pow(2, k-1)-y+1, pow(2,k-1)-(x-pow(2, k-1))+1);

    }
}

int main()
{   ifstream in("fractal.in");
   ofstream out("fractal.out");
   int k,x,y;
   in>>k>>x>>y;
   out<<f(k,x,y);
   return 0;
}