Cod sursa(job #1754200)

Utilizator radu9876Radu Sirghe radu9876 Data 7 septembrie 2016 17:26:22
Problema Fractal Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int k,l=0,p=1,i,col,lin,r=0,rot=0;
    FILE *in;
    in=fopen("fractal.in","r");
    fscanf(in,"%d%d%d",&k,&col,&lin);
    fclose(in);
    for(i=1;i<k;i++){
        l=l*4+3;
        p=p*2;
    }
    while(l>0){
        if(col<=p && lin<=p) rot=1;
        if(col>p && lin<=p){
            r=r+l*3+3;
            col=col-p;
            if(rot==1){
                col=p-col;
            }
            rot=1;
        }
        if(col<=p && lin>p){
            r=r+(rot==1?3*l+2:l+1);
            lin=lin-p;
            if(rot==1){
                col=p-col;
            }
            rot=0;
        }
        if(col>p && lin>p){
            r=r+(rot==1?2*l+1:2*l+2);
            col=col-p;
            lin=lin-p;
            if(rot==1){
                col=p-col;
            }
            rot=0;
        }
        l=(l-3)/4;
        p=p/2;
    }
    FILE *out;
    out=fopen("fractal.out","w");
    fprintf(out,"%d",r);
    return 0;
}