Pagini recente » Cod sursa (job #2831372) | Cod sursa (job #1667751) | Cod sursa (job #579213) | Cod sursa (job #2099640) | Cod sursa (job #1039976)
#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=n*n-c(i,j,k-1);
}
else
{
nr=4*n*n;
j=j-n;
a=i;
i=j;
j=a;
i=n-i+1;
nr-=c(i,j,k-1);
}
else if(j<=n)
{
nr=n*n;
i-=n;
nr+=c(i,j,k-1);
}
else
{
nr=n*n*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;
}