Cod sursa(job #1110377)

Utilizator Becu15Coca Cola Octavian Becu15 Data 18 februarie 2014 00:09:52
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <cstdio>
#include <cstdint>
#include <algorithm>
using namespace std;

int main()
{
    int64_t a,s=0,a2;
    int k,x,y,cx;
    freopen ("fractal.in","r",stdin);
    freopen ("fractal.out","w",stdout);
    scanf("%d %d %d",&k,&y,&x);
    a=1<<k;
    while(k)
    {
        a2=a/2;
        if(x>a2 && y>a2)
        {
            x-=a2;y-=a2;
            s+=2*(1<<(k-1)*2);
        }
        else if(x<=a2 && y<=a2)
        {
            swap(x,y);
        }
        else if(x>a2 && y<=a2)
        {
            x-=a2;
            s+=1<<(k-1)*2;
        }
        else if(x<=a2 && y>a2)
        {
            cx=x;x=a-y+1;
            y=a2-cx+1;
            s+=3*(1<<(k-1)*2);
        }
        a>>=1;
        k--;
    }
    printf("%I64d",s);
    return 0;
}