Cod sursa(job #1039976)

Utilizator roxannemafteiuMafteiu-Scai Roxana roxannemafteiu Data 23 noiembrie 2013 20:19:18
Problema Fractal Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#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;
 }