Cod sursa(job #643028)

Utilizator vladtarniceruVlad Tarniceru vladtarniceru Data 2 decembrie 2011 19:30:32
Problema Fractal Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
using namespace std;

int k,x,y;

inline int put(int x)
{
    return x*x;
}

int make(int k,int x,int y)
{
    if(k==1) return 0;
    if(x<=(k/2) && y<=(k/2))
    {
        return make(k/2,y,x);
    }
    else
    if(x<=(k/2) && y>(k/2))
    {
        return make(k/2,k/2-(y-k/2)+1,k/2-x+1)+put(k/2)*3;
    }
    else
    if(x>(k/2) && y<=(k/2))
    {
        return make(k/2,x-k/2,y)+put(k/2);
    }
    else
    {
        return make(k/2,x-k/2,y-k/2)+put(k/2)*2;
    }
}
int main()
{
    ifstream f("fractal.in");
    ofstream g("fractal.out");

    f>>k>>x>>y;
    g<<make(1<<k,x,y);
    g.close();
    return 0;
}