Pagini recente » Cod sursa (job #830578) | Cod sursa (job #2847708) | Cod sursa (job #3308762) | Cod sursa (job #1314946) | Cod sursa (job #3307452)
#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*putere, y, p-1);
}
else if(x>putere && y>putere)
{
return 2*putere*putere + divide(x-putere*putere, y-putere*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;
}