¿La página no carga? Prueba haciendo clic aquí.
Placeholder

#1188

비트방정식 1s 128MB

Problemas

양의 정수 X와 K가 주어졌을 때, 다음의 방정식을 만족하는 임의의 양의 정수 Y 중에서 K번째로 작은 숫자를 찾는 프로그램을 작성하라.

X + Y = X | Y

여기서 '|'는 OR연산을 뜻한다. OR연산은 두개의 정수를 2진수로 바꾼 다음에 2진수로 이뤄진 숫자의 동일한 위치에 대해서 둘다 0일 경우 0, 둘 중에 하나라도 1일 경우 1을 취하는 연산자다.

예를 들어 X가 3이고, Y가 6일 경우 X | Y는 다음과 같다. 011 OR 110 = 111, 111을 10진수로 바꾸면 7이므로, 3 | 6 = 7이 된다.


Entrada

입력은 한 줄로 이뤄지며 양의 정수 X와 K가 입력된다. X와 K는 1 이상 2,000,000,000 이하의 숫자다.


Salida

입력에 대해 방정식을 만족하는 임의의 정수 Y 중에 K번째로 작은 숫자를 출력한다.


Ejemplo #1

5 1
2

Ejemplo #2

5 5
18

Ejemplo #3

10 3
5

Ejemplo #4

1 150000
250000

Fuente

Online Contest
Debes iniciar sesión para escribir código.