레벨 햄버거

시간 제한0.5초메모리 제한512 MB

요약
번과 패티로 재귀적으로 정의되는 N단 버거에서 아래 X개 층에 들어 있는 패티의 개수를 센다.
난이도

보통10점 중 5점

유형
재귀, 분할 정복, 수학, 구현
정답자
아직 제출이 없습니다

문제

상근날드에서 새 햄버거를 출시했다. 이름은 레벨-L 버거이다. 레벨-L 버거는 다음과 같이 만든다.

  • 레벨-0 버거는 패티만으로 이루어져 있다.
  • 레벨-L 버거는 햄버거번, 레벨-(L-1) 버거, 패티, 레벨-(L-1) 버거, 햄버거번 순서로 이루어져 있다. (L ≥ 1)

예를 들어, 레벨-1 버거는 'BPPPB', 레벨-2 버거는 'BBPPPBPBPPPBB'와 같이 생겼다. (B는 햄버거번, P는 패티)

상도가 상근날드에 방문해서 레벨-N 버거를 시켰다. 상도가 햄버거의 아래 X장을 먹었을 때, 먹은 패티는 몇 장일까? 한 장은 햄버거번 또는 패티 한 장이다.

입력

첫째 줄에 N과 X가 주어진다.

출력

첫째 줄에 상도가 먹은 패티의 수를 출력한다.

제한

  • 1 ≤ N ≤ 50
  • 1 ≤ X ≤ 레벨-N 버거에 있는 레이어의 수

예제3

  1. 예제 1

    입력
    2 7
    
    예상 출력
    4
    
  2. 예제 2

    입력
    1 1
    
    예상 출력
    0
    
  3. 예제 3

    입력
    50 4321098765432109
    
    예상 출력
    2160549382716056