Skip to content

Latest commit

 

History

History
37 lines (30 loc) · 866 Bytes

File metadata and controls

37 lines (30 loc) · 866 Bytes

백준 16974번 레벨 햄버거

16974


소스코드

  • 메모리 : 29200 KB
  • 시간 : 72 ms
def count(n,x):
    if n == 0:
        if x == 0: return 0
        elif x == 1: return 1
    elif x == 1: return 0
    
    elif x <= 1+burger[n-1]:
        return count(n-1, x-1)
    elif x == 2+burger[n-1]:
        return patty[n-1]+1
    elif x <= 2+2*burger[n-1]:
        return 1 + patty[n-1] + count(n-1, x - (2+burger[n-1]))
    else:
        return patty[n]

n, x = map(int, input().split())
burger = [1 for i in range(n+1)]
patty = [1 for i in range(n+1)]

for i in range(1,n+1):
    burger[i] = 3+2*burger[i-1]
    patty[i] = 2*patty[i-1]+1

print(count(n,x))