Cod sursa(job #2631710)

Utilizator PetyAlexandru Peticaru Pety Data 30 iunie 2020 17:41:30
Problema Fractal Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("fractal.in");
ofstream fout("fractal.out");

int n, x, y;
int fractal (int n, int x, int y) {
  if (n == 1) {
    if (x == 1 && y == 2)
      return 3;
    if (x == 2 && y == 1)
      return 1;
    if (x == 2 && y == 2)
      return 1;
    return 0;
  }
  int aria = (1 << 2 * (n - 1));
  int mij = (1 << (n - 1));
  if (x <= mij && y <= mij)
    return fractal(n - 1, y, x);
  if (x > mij && y <= mij)
    return aria + fractal(n - 1, x - mij, y);
  if (x > mij && y > mij)
    return 2 * aria + fractal(n - 1, x - mij, y - mij);
  if (x <= mij && y > mij)
    return 3 * aria + fractal(n - 1, (1 << n) - y + 1, mij - x + 1);
}


int main()
{
  fin >> n >> y >> x;
  fout << fractal (n, x, y);
  return 0;
}