Cod sursa(job #1026454)

Utilizator george_stelianChichirim George george_stelian Data 11 noiembrie 2013 17:26:56
Problema Fractal Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <cstdio>

using namespace std;

long long int s;
int k,x,y,a,q;

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