Pagini recente » Cod sursa (job #717022) | Cod sursa (job #3288901) | Cod sursa (job #39454) | Cod sursa (job #3250816) | Cod sursa (job #2976008)
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
int main()
{
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int k, x, y;
fin >> k >> x >> y;
int steps = 0;
int size = pow(2, k);
while (k > 0)
{
int mid = size / 2;
// Determinare parte
int part;
if (x > mid)
{
if (y > mid)
part = 0;
else
part = 3;
}
else
{
if (y > mid)
part = 1;
else
part = 2;
}
// Adaugare pas
steps += part * pow(4, k - 1);
// Update coordonate
if (part == 0)
{
x -= mid;
y -= mid;
}
else if (part == 1)
x -= mid;
else if (part == 2)
y -= mid;
// Update k
k--;
size /= 2;
}
fout << steps;
return 0;
}