Cod sursa(job #1324951)

Utilizator dariusdariusMarian Darius dariusdarius Data 22 ianuarie 2015 22:50:48
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <algorithm>
#include <fstream>
#include <iostream>
using namespace std;

inline int solve(int k, int x, int y) {
    if (k == 0) {
        return 0;
    }
    -- k;
    if (x <= (1 << k) && y <= (1 << k)) {
        return solve(k, y, x);
    }
    if (x <= (1 << k)) {
        return 3 * (1 << (2 * k)) + solve(k, 2 * (1 << k) - y + 1, (1 << k) - x + 1);
    }
    if (y <= (1 << k)) {
        return (1 << (2 * k)) + solve(k, x - (1 << k), y);
    }
    return 2 * (1 << (2 * k)) + solve(k, x - (1 << k), y - (1 << k));
}

int main() {
    ifstream fin("fractal.in");
    ofstream fout("fractal.out");
    int k, x, y;
    fin >> k >> x >> y;
    fout << solve(k, y, x) << "\n";
    return 0;
}