Cod sursa(job #719719)
| Utilizator | Data | 21 martie 2012 23:28:59 | |
|---|---|---|---|
| Problema | Fractal | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.46 kb |
#include <cstdio>
FILE *f,*g;
int k,x,y;
int sol(int k,int x,int y) {
int m,s;
if (k==0) return 0;
m=1<<(k-1); s=m*m;
if (y<=m && x<=m) return sol(k-1,y,x);
if (y>m && x<=m) return s+sol(k-1,x,y-m);
if (y>m && x>m) return 2*s+sol(k-1,x-m,y-m);
if (y<=m && x>m) return 3*s+sol(k-1,m-y+1,2*m-x+1);
}
int main() {
f=fopen("fractal.in","r");
g=fopen("fractal.out","w");
fscanf(f,"%d%d%d",&k,&x,&y);
fprintf(g,"%d",sol(k,x,y));
return 0;
}