Cod sursa(job #2147766)

Utilizator ovidius11Stiriu Ovidius ovidius11 Data 28 februarie 2018 23:07:33
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<cstdio>
int rasp;
int calc(int k,int x,int y){
if (k==1){
if (x==1 && y==1)
return 0;
if (x==1 && y==2)
rasp+=3;
if (x==2 && y==1)
rasp++;
if (x==2 && y==2)
rasp+=2;
return 0;}
if (x<=(1<<(k-1)) && y<=(1<<(k-1))){
calc(k-1,y,x);
return 0;}
if (x>(1<<(k-1)) && y<=(1<<(k-1))){
rasp=rasp+(1<<(k-1))*(1<<(k-1));
calc(k-1,x-(1<<(k-1)),y);}
if (x>(1<<(k-1)) && y>(1<<(k-1))){
rasp=rasp+2*(1<<(k-1))*(1<<(k-1));
calc(k-1,x-(1<<(k-1)),y-(1<<(k-1)));}
if (x<=(1<<(k-1)) && y>(1<<(k-1))){
rasp=rasp+3*(1<<(k-1))*(1<<(k-1));
calc(k-1,(1<<k)-y+1,(1<<(k-1))-x+1);}
return 0;}
int main(){
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
int k,x,y;
scanf("%d%d%d",&k,&x,&y);
calc(k,y,x);
printf("%d\n",rasp);
return 0;}