Cod sursa(job #2346126)

Utilizator YusyBossFares Yusuf YusyBoss Data 17 februarie 2019 11:08:29
Problema Fractal Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>

using namespace std;

int dei(int k, int  x, int y) {
  int cad, nr;
  if (k == 0)
    return 0;
  nr = (1 << k);
  if (x <= nr / 2 && y <= nr / 2)
    cad = 1;
  else if (x <= nr / 2)
    cad = 4;
  else if (x > nr / 2 && y <= nr / 2)
    cad = 2;
  else
    cad = 3;
  if (cad == 3)
    return (1 << (2 * k - 2)) * (cad - 1) + dei(k - 1, x - (1 << (k - 1)), y - (1 << (k - 1)));
  else if (cad == 2)
    return (1 << (2 * k - 2)) * (cad - 1) + dei(k - 1, x - (1 << (k - 1)), y);
  else if (cad == 4)
    return (1 << (2 * k - 2)) * (cad - 1) + dei(k - 1, (1 << k) - y + 1, (1 << (k - 1)) - x + 1);
  else
    return (1 << (2 * k - 2)) * (cad - 1) + dei(k - 1, y , x);
}

int main()
{
  ifstream cin ("fractal.in");
  ofstream cout ("fractal.out");
    int k, x, y, aux;
    cin >> k >> x >> y;
    aux = x;
    x = y;
    y = aux;
    cout << dei(k, x, y);
    return 0;
}