Битовый автомат

면접 대비

시간 제한2초메모리 제한1024 MB

요약
n비트 피해값 a가 주어질 때, 최대 한 비트를 잘못 읽었을 수 있다면 실제 피해의 최솟값과 최댓값을 구한다.
난이도

쉬움10점 중 3점

유형
비트 연산, 완전 탐색, 수학
정답자
아직 제출이 없습니다

문제

Ральф нашёл новое оружие --- битовый автомат! Этот автомат стреляет очередями бит, причем первый выстреленный бит наносит цели урон 11, а каждый следующий бит наносит цели урон в два раза больший, чем предыдущий.

Этот автомат пришёлся как нельзя кстати, когда на Ральфа внезапно обрушилось полчище кибер-жуков. Стреляя в жука, Ральф замечает, какие биты попали в цель, а какие нет. К несчастью, за годы тяжелой работы наш герой изрядно испортил себе зрение, и поэтому может распознать траекторию движения одного из бит неверно. В связи с этим реальный и замеченный Ральфом урон могут различаться. Зная количество выстреленных бит и предполагаемый урон помогите Ральфу узнать, какой минимальный и максимальный реальный урон мог быть нанесен кибер-жуку.

입력

В первой строке находится два числа nn и aa --- количество бит в коде и предполагаемый урон соответственно (1≤n≤631 \le n \le 63, 0≤a≤2n−10 \le a \le 2^{n}-1).

출력

Выведите два числа: минимальный и максимальный возможный реальный урон, если учесть, что Ральф мог допустить ошибку в распознании результата выстрела в не более чем одном бите. 0≤a_min≤a_max≤2n−10 \le a\_{min} \le a\_{max} \le 2^n-1.

예제2

  1. 예제 1

    입력
    3 5
    
    예상 출력
    1 7
    
  2. 예제 2

    입력
    5 0
    
    예상 출력
    0 16