Cod sursa(job #552680)

Utilizator dushmiMihai-Alexandru Dusmanu dushmi Data 12 martie 2011 18:24:54
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<cstdio>
int n,x,y,r;
void read()
{
  freopen("fractal.in","r",stdin);
  freopen("fractal.out","w",stdout);
  scanf("%d%d%d",&n,&x,&y);
  int aux=x;
  x=y;
  y=aux;
}
int solve(int gr,int lat,int x,int y)
{
  if(gr==0)
    return r;
  if(x<=(lat>>1) && y<=(lat>>1))
    return solve(gr-1,(lat>>1),y,x);
  r+=(lat>>1)*(lat>>1);
  if(x>(lat>>1) && y<=(lat>>1))
    return solve(gr-1,(lat>>1),x-(lat>>1),y);
  r+=(lat>>1)*(lat>>1);
  if(x>(lat>>1) && y>(lat>>1))
    return solve(gr-1,(lat>>1),x-(lat>>1),y-(lat>>1));
  r+=(lat>>1)*(lat>>1);
  return solve(gr-1,(lat>>1),lat-y+1,(lat>>1)-x+1);
}
int main()
{
  read();
  printf("%d\n",solve(n,(1<<n),x,y));
  return 0;
}