Cod sursa(job #719201)

Utilizator costyv87Vlad Costin costyv87 Data 21 martie 2012 16:23:41
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <cstdio>
FILE *f,*g;
int x,y,k;

void rot(int n, int *x, int *y, int rx, int ry) {
    int t;
    if (ry == 0) {
        if (rx == 1) {
            *x = n-1 - *x;
            *y = n-1 - *y;
        }
        t  = *x;
        *x = *y;
        *y = t;
    }
}


int xy2d (int n, int x, int y) {
    int rx, ry, s, d=0;
    for (s=n/2; s>0; s/=2) {
        rx = (x & s) > 0;
        ry = (y & s) > 0;
        d += s * s * ((3 * rx) ^ ry);
        rot(s, &x, &y, rx, ry);
    }
    return d;
}


int main() {
f=fopen("fractal.in","r");
g=fopen("fractal.out","w");

fscanf(f,"%d%d%d",&k,&x,&y);

fprintf(g,"%d",xy2d(1<<k,x-1,y-1));

fclose(g);
return 0;
}