Cod sursa(job #2656809)

Utilizator rares404AlShaytan - Balasescu Rares rares404 Data 8 octombrie 2020 19:24:03
Problema Fractal Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 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 2;
    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;
}