Pagini recente » Cod sursa (job #2510589) | Cod sursa (job #2866213) | Cod sursa (job #2322620) | Cod sursa (job #2091908) | Cod sursa (job #551607)
Cod sursa(job #551607)
#include <stdio.h>
long int n, l, c;
long int nr(long int l, long int c)
{
long int mjc;
if (n==1)
{
if (l+c==2) return 0;
if ((l==2)&&(c==1)) return 1;
if ((l==2)&&(c==2)) return 2;
return 3;
}
else
{
mjc=1<<(n-1); n--;
if ((l<=mjc)&&(c<=mjc))
return nr(c,l);
if ((l>mjc)&&(c<=mjc))
return mjc*mjc+nr(l-mjc,c);
if ((l>mjc)&&(c>mjc))
return 2*mjc*mjc+nr(l-mjc,c-mjc);
c=c-mjc;
return 3*mjc*mjc+nr(mjc-c+1,mjc-l+1);
}
}
int main()
{
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
scanf("%ld %ld %ld",&n, &c, &l);
printf("%ld",nr(l,c));
return 0;
}