Cod sursa(job #2098819)

Utilizator tiberiu.bucur17Tiberiu Constantin Emanoil Bucur tiberiu.bucur17 Data 3 ianuarie 2018 16:01:36
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cstdio>
char a[2][2]={{0,3},{1,2}};
int divide(int dim,int lin,int col)
{
    if(dim==2)
        return a[lin-1][col-1];
    dim>>=1;
    int dif=dim*dim;
    if(lin<=dim && col<=dim)
        return divide(dim,col,lin);
    if(lin<=dim && col>dim)
    {
        col-=dim;
        return 3*dif+divide(dim,dim-col+1,dim-lin+1);
    }
    if(lin>dim && col<=dim)
        lin-=dim;
    else
    {
        lin-=dim;col-=dim;
        dif*=2;
    }
    return dif+divide(dim,lin,col);
}
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,&y,&x);
    fprintf(fout,"%d",divide(1<<k,x,y));
    fclose(fin);
    fclose(fout);
    return 0;
}