Cod sursa(job #1819559)

Utilizator alexpetrescuAlexandru Petrescu alexpetrescu Data 30 noiembrie 2016 17:53:28
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <cstdio>

int solve(int k, int x, int y){
    if(k==1) return 0;
    else{
        k/=2;
        if((x<=k)&&(y<=k)) return solve(k, y, x);
        else if(x<=k) return k*k+solve(k, x, y-k);
        else if(y<=k) return 3*k*k+solve(k, k-y+1, 2*k-x+1);
        else return 2*k*k+solve(k, x-k, y-k);
    }
}

int main(){
    FILE *fin, *fout;
    fin=fopen("fractal.in", "r");
    fout=fopen("fractal.out", "w");

    int k, x, y;
    fscanf(fin, "%d%d%d", &k, &x, &y);
    fprintf(fout, "%d\n", solve(1<<k, x, y));

    fclose(fin);
    fclose(fout);
    return 0;
}