Pagini recente » Cod sursa (job #3250271) | Cod sursa (job #669643) | Cod sursa (job #1430101) | Cod sursa (job #51128) | Cod sursa (job #1039992)
#include<stdio.h>
#include<math.h>
FILE *in,*out;
using namespace std;
long long i,j,k;
long long c(long long i,long long j,long long k)
{
if(k==0)
return 0;
long long n=pow(2,k-1),m=n*n;
long long nr=0;
unsigned int a;
if(i<=n)
if(j<=n)
{
a=i;
i=j;
j=a;
j=n-j+1;
nr=m-c(i,j,k-1);
}
else
{
nr=4*m;
j=j-n;
a=i;
i=j;
j=a;
i=n-i+1;
nr-=c(i,j,k-1);
}
else if(j<=n)
{
nr=m;
i-=n;
nr+=c(i,j,k-1);
}
else
{
nr=m*2;
i-=n;
j-=n;
nr+=c(i,j,k-1);
}
return nr;
}
int main()
{
in=fopen("fractal.in","rt");
out=fopen("fractal.out","wt");
fscanf(in,"%lld %lld %lld",&k,&j,&i);
fprintf(out,"%lld",c(i,j,k));
fclose(in);
fclose(out);
return 0;
}