Pagini recente » Cod sursa (job #1697009) | Cod sursa (job #2558848) | Cod sursa (job #699068) | Cod sursa (job #2764805) | Cod sursa (job #2480)
Cod sursa(job #2480)
# include<stdio.h>
long int nr[20];
long int sol(long int k, long int x, long int y)
{
long int noroi=1<<(k-1);
if (k==1)
{
if (x==1) if (y==1) return 0;
else return 3;
if (x==2) if (y==1) return 1;
else return 2;
}
if (x<=noroi&&y<=noroi) return sol(k-1,y,x);
if (x<=noroi&&y>noroi) return 3*nr[k-1]+3+sol(k-1,noroi-(y-noroi)+1,noroi-x+1);
if (x>noroi&&y<=noroi) return nr[k-1]+1+sol(k-1,x-noroi,y);
/*if (x>noroi&&y>noroi)*/ return 2*nr[k-1]+2+sol(k-1,x-noroi,y-noroi);
}
int main()
{
long int i,k,x,y;
nr[1]=3;
for (i=2;i<=15;i++) nr[i]=nr[i-1]*4+3;
FILE *f=fopen("fractal.in","r");
fscanf(f,"%ld%ld%ld",&k,&y,&x);
FILE *g=fopen("fractal.out","w");
fprintf(g,"%ld\n",sol(k,x,y));
fcloseall();
return 0;
}