Pagini recente » Cod sursa (job #3173694) | Cod sursa (job #1849496) | Cod sursa (job #3271888) | Borderou de evaluare (job #1621330) | Cod sursa (job #1253958)
#include <cstdio>
using namespace std;
FILE *in = fopen("fractal.in","r");
FILE *out = fopen("fractal.out","w");
int rec(int k, int x , int y){
if(!k){
return 0;
}
int m = 1 << (k-1);
int p = m*m;
if(x<=m && y<=m){
return rec(k-1,y,x);
}else if(x<=m){
return 3*p+rec(k-1, 2*m-y+1, m-x+1 );
}else if(y<=m){
return p+rec(k-1,x-m,y);
}else{
return 2*p+rec(k-1, x-m, y-m);
}
}
int main(){
int k, x, y;
fscanf(in,"%d%d%d",&k,&x,&y);
fprintf(out,"%d\n",rec(k,y,x));
return 0;
}