Cod sursa(job #1754303)

Utilizator radu9876Radu Sirghe radu9876 Data 7 septembrie 2016 21:05:45
Problema Fractal Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <stdio.h>
#include <stdlib.h>

long long int cadran(int p,int x,int y){
    if(p<2) return 0;
    long long int rez=0;
    int xn=x,yn=y;
    if(x<=p/2){
        if(y<=p/2){ //ss
            yn=x;
            xn=y;
        }else{ //sj
            yn=y-p/2;
            rez=p/2*p/2;
        }
    }else{
        if(y<=p/2){ //ds
            xn=p/2-y+1;
            yn=p-x+1;
            rez=p/2*p/2*3;
        }else{ // dj
            xn=x-p/2;
            yn=y-p/2;
            rez=p/2*p;
        }
    }
    return rez+cadran(p/2,xn,yn);
}

int main()
{
    long long int rez;
    int k,p=1,i,col,lin;
    FILE *in;
    in=fopen("fractal.in","r");
    fscanf(in,"%d%d%d",&k,&col,&lin);
    fclose(in);
    for(i=0;i<k;i++){
        p=p*2;
    }
    rez=cadran(p,col,lin);
    FILE *out;
    out=fopen("fractal.out","w");
    fprintf(out,"%d",rez);
    return 0;
}