Cod sursa(job #1124044)

Utilizator maribMarilena Bescuca marib Data 26 februarie 2014 11:02:57
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <fstream>

using namespace std;
long long int n, c, l, i, pasi=0, lin, col, temp;
int main()
{
    ifstream in ("fractal.in");
    ofstream out ("fractal.out");
    in>>n;
    in>>c>>l;
    for(i=n; i>=1; --i)
        {
            if(l>(1<<(i-1))&&c<=(1<<(i-1)))
                {
                    pasi+=(1<<(i-1))*(1<<(i-1));
                    l-=(1<<(i-1));
                }
            else if(l>(1<<(i-1))&&c>(1<<(i-1)))
                {
                    pasi+=2*(1<<(i-1))*(1<<(i-1));
                    l-=(1<<(i-1));
                    c-=(1<<(i-1));
                }
            else if(l<=(1<<(i-1))&&c>(1<<(i-1)))
                {
                    pasi+=3*(1<<(i-1))*(1<<(i-1));
                    c-=(1<<(i-1));
                    lin=(1<<(i-1))+1-c;
                    col=(1<<(i-1))+1-l;
                    l=lin; c=col;
                }
            else
                {
                    temp=c;
                    c=l;
                    l=temp;
                }
        }
    out<<pasi<<"\n";
    in.close();
    out.close();
    return 0;
}