728x90
N, r, c = map(int, input().split())
def z(N, r, c):
result = 0
while N > 0:
if N == 1:
result += r * 2 + c
break
else:
flag = 4 ** (N - 1)
half = (2 ** N) >> 1
N -= 1
if r < half and c < half:
continue
elif r < half:
result += flag
c -= half
elif c < half:
result += flag * 2
r -= half
else:
result += flag * 3
r -= half
c -= half
return result
print(z(N, r, c))
'STUDY > Algorithm' 카테고리의 다른 글
[프로그래머스] 행렬 테두리 회전하기 python, 2021 Dev-Matching: 웹 백엔드 개발자(상반기) (0) | 2021.05.04 |
---|---|
[프로그래머스] 다단계 칫솔 판매 python, 2021 Dev-Matching: 웹 백엔드 개발자(상반기) (0) | 2021.05.04 |
[백준] 11724 연결 요소의 개수 python (0) | 2021.05.04 |
[백준] 11723 집합 C (0) | 2021.05.04 |
[백준] 11279 최대힙 python (0) | 2021.05.04 |