Cod sursa(job #2036471)

Utilizator dumitrescugeorgeGeorge Dumitrescu dumitrescugeorge Data 10 octombrie 2017 18:46:09
Problema Fractal Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <cstdio>
using namespace std;
int x,y,k,a[1000][1000],n=1;
void citire()
{
    scanf("%d%d%d",&k,&x,&y);
}
void putere()
{
   for(int i=1;i<=k;i++)
        n*=2;
}
int rec(int x,int y,int n)
{
    if(n==0&&x==1&&y==1)
        return 0;
    if(x>n/2&&y>n/2)
        return 2*(n*n)/4+rec(x-n/2,y-n/2,n/2);
    else
        if(x>n/2&&y<=n/2)
            return (n*n)/4+rec(n-y+1-n/2,n-x+1,n/2);
    else
        if(x<=n/2&&y>n/2)
            return 3*(n*n)/4+rec(x,y-n/2,n/2);
    else
        if(x<=n/2&&y<=n/2)
            return rec(y,x,n/2);
}
void afisare()
{
    printf("%d",rec(x,y,n));
}
int main()
{
    freopen("fractal.in","r",stdin);
    freopen("fractal.out","w",stdout);
    citire();
    putere();
    rec(x,y,n);
    afisare();
    return 0;
}