Cod sursa(job #1727053)

Utilizator oldatlantianSerban Cercelescu oldatlantian Data 9 iulie 2016 19:29:20
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;

int furt(int x, int y, int k) {
    if (k==1) {
        if (x==1 && y==1)
            return 0;
        if (x==2 && y==1)
            return 1;
        if (x==2 && y==2)
            return 2;
        return 3;
    }
    else {
        int l = 1<<k-1;
        if (x<=l && y<=l)
            return furt(y, x, k-1);
        if (x > l && y <= l)
            return (1<<2*(k-1))+furt(x-l, y, k-1);
        if (x > l && y > l)
            return (1<<(2*k-1))+furt(x-l, y-l, k-1);
        return (3*(1<<2*(k-1)))+furt((2*l)-y+1, l-x+1, k-1);
    }
}

int main(void) {
    int k, x, y;
    ifstream("fractal.in")>>k>>x>>y;
    ofstream("fractal.out")<<furt(y, x, k);
    return 0;
}