Cod sursa(job #2036467)

Utilizator B_RazvanBaboiu Razvan B_Razvan Data 10 octombrie 2017 18:41:58
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <cstdio>

using namespace std;

int nrPasi(int n, int x, int y)
{
    if(n == 1)
        return 0;

    if(x <= n/2 && y <= n/2)
        return nrPasi(n/2, y, x);
    else if(x <= n/2 && y > n/2)
        return n/2*n/2 + nrPasi(n/2, x, y-n/2);
    else if(x > n/2 && y > n/2)
        return 2 * (n/2*n/2) + nrPasi(n/2, x-n/2, y-n/2);
    else if(x > n/2 && y <= n/2)
        return 3 * (n/2*n/2) + nrPasi(n/2, n/2-y+1, n-x+1);
}

int main()
{
    freopen("fractal.in", "r", stdin);
    freopen("fractal.out", "w", stdout);
    int k, x, y;
    scanf("%d%d%d", &k, &x, &y);
    int n = 1<<k;
    printf("%d", nrPasi(n, x, y));
    return 0;
}