Cod sursa(job #1202888)
| Utilizator | Data | 30 iunie 2014 00:33:58 | |
|---|---|---|---|
| Problema | Fractal | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.57 kb |
#include <fstream>
using namespace std;
ifstream f("fractal.in");
ofstream g("fractal.out");
int divide (int x, int y, int k) {
if (k == 0)
return 0;
--k;
int l = (1 << k);
if (x <= l && y <= l)
return divide (y, x, k);
if (x > l && y <= l)
return l*l + divide (x-l, y, k);
if (x > l && y > l)
return 2*l*l + divide (x-l, y-l, k);
return 3*l*l + divide (2*l - y + 1, l - x + 1, k);
}
int main () {
int x, y, k;
f >> k >> x >> y;
g << divide (y, x, k) << "\n";
return 0;
}
