문제
Z
코드
#include <iostream>
#include <cmath>
using namespace std;
int ft_z(int n, int r, int c)
{
if (n == 1)
{
if (r == 0 && c == 0)
return (0);
else if (r == 0 && c == 1)
return (1);
else if (r == 1 && c == 0)
return (2);
else
return (3);
}
int area = pow(2, n - 1);
if (r < area && c < area)
return (ft_z(n - 1, r, c));
else if (r < area && c >= area)
return (ft_z(n - 1, r, c - area) + area * area);
else if (r >= area && c < area)
return (ft_z(n - 1, r - area , c) + (area * area * 2));
else
return (ft_z(n - 1, r- area, c - area) + (area * area * 3));
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int n, r, c, count;
cin >> n >> r >> c;
count = ft_z(n, r, c);
cout << count;
return (0);
}