页面无法加载?点击这里可能会修复。
Placeholder

#1629

정렬된 bit 수열 1s 64MB

问题

컴퓨터상에서 정수의 표현은 비트(2진수)로 표현 할 수 있다. 

예를 들어 32비트로 6을 표현하면 다음과 같다.

0000 0000 0000 0000 0000 0000 0000 0110

 

그리고 -6을 표현하면 다음과 같으며,

1111 1111 1111 1111 1111 1111 1111 1010

 

이 둘을 더한 식과 결과를 나타내면 아래와 같다.

 

 

32비트로 표현되는 m이상 n이하의 숫자가 있다. (m≤i≤n; m x n≥0, -231≤m≤n≤231-1).

m이상 n이하의 숫자를 비트로 표현했을 경우 1의 숫자가 적은 순서대로 정렬을 하고자 한다. 

만약 1의 개수가 같을 경우 작은 숫자가 우선으로 나오도록 한다. 

만약 m = 0이고 n = 5가 되면 다음과 같이 정렬된다.

 

 

m = -5 이고 n = -2 일 경우는 다음과 같다.

m, n과 k가 주어졌을 때(1≤k≤min(n-m+1,2147473547)) 

위의 방식대로 정렬 했을 경우의 숫자 중 k번째로 나타나는 숫자를 출력하라.


输入

입력은 한 줄에 m과 n 그리고 k가 입력된다.


输出

입력에 대해 k번째로 나타나는 숫자를 출력한다.


示例 #1

0 5 3
2

示例 #2

-5 -2 2
-5

来源

ACM ICPC 2006, Asia Regional Contest, site Hanoi
需要登录才能编写代码。