Cod sursa(job #1253947)
| Utilizator | Data | 1 noiembrie 2014 23:22:11 | |
|---|---|---|---|
| Problema | Fractal | Scor | 40 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.58 kb |
#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,x,y);
}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,x,y));
return 0;
}
