Cod sursa(job #613275)
| Utilizator | Data | 20 septembrie 2011 16:45:43 | |
|---|---|---|---|
| Problema | Fractal | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.53 kb |
#include<stdio.h>
int hilb(int k,int x,int y)
{
int p=0,n;
n=1<<k;
if(k==0)
return 0;
if(x<=n/2 && y<=n/2)
p+=hilb(k-1,y,x);
if(x>n/2 && y<=n/2)
p+=n*n/4+hilb(k-1,x-n/2,y);
if(x>n/2 && y> n/2)
p+=n*n/2+hilb(k-1,x-n/2,y-n/2);
if(x<=n/2 && y>n/2)
p+=3*n*n/4+hilb(k-1,n-y+1,n/2-x+1);
return p;
}
int main()
{
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
int x,y,k;
scanf("%d%d%d",&k,&x,&y);
printf("%d",hilb(k,x,y));
return 0;
}
