Pagini recente » Borderou de evaluare (job #1204078) | Borderou de evaluare (job #122307) | Borderou de evaluare (job #1162246) | Cod sursa (job #2098819)
#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;
}