Pagini recente » Cod sursa (job #2026314) | Cod sursa (job #1924591) | Cod sursa (job #3304664) | Cod sursa (job #1622353) | Cod sursa (job #3307453)
#include <bits/stdc++.h>
using namespace std;
ifstream in("fractal.in");
ofstream out("fractal.out");
int divide(int x, int y, int p)
{
if(p==0) return 0;
int putere=(1<<(p-1)); ///lungimea laturii patratului in care este inscrisa curba de ordin p-1
if(x<=putere && y<=putere)
{
return divide(y, x, p-1);
}
else if(x>putere && y<=putere)
{
return putere*putere + divide(x-putere, y, p-1);
}
else if(x>putere && y>putere)
{
return 2*putere*putere + divide(x-putere, y-putere, p-1);
}
else
{
return 3*putere*putere + divide(1 + putere*2 - y, 1 + putere - x, p-1);
}
}
int main()
{
int k, x, y;
in >> k >> y >> x;
out << divide(x, y, k);
return 0;
}