Cod sursa(job #2976008)

Utilizator EroaleToma Erol Eroale Data 8 februarie 2023 00:01:03
Problema Fractal Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#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;
}