Cod sursa(job #1007767)

Utilizator TarabanDragosTaraban Dragos-Petru TarabanDragos Data 9 octombrie 2013 18:27:44
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <fstream>

int i, j, k, sol, lin, col, n;

using namespace std;


int main(){
    ifstream fin("fractal.in");
    ofstream fout("fractal.out");
    fin>>k>>j>>i;
    while (k!=0) {
        // sunt in patrat cu 2^k * 2^k punte
        k--;

        if (i<=(1<<k)) {
            if (j<=(1<<k)) {
                n = (1<<(k));
                lin = j;
                col = n-i+1;
                i = lin;
                j = col;
                j = n-j+1;
            } else {
                sol += (1<<k) * (1<<k) * 3;
                n = (1<<(k));
                j-=(1<<k);
                lin = n-j+1;
                col = i;
                i = lin;
                j = col;
                j = n-j+1;
            }

        } else {
            if (j<=(1<<k)) {
                sol += (1<<k) * (1<<k);
                i -= (1<<k);

            } else {
                sol += (1<<k) * (1<<k) * 2;
                i-= (1<<k);
                j-= (1<<k);
            }
        }
    }
    fout<<sol;

    return 0;
}