1의 개수 세기
시간 제한8초메모리 제한256 MB
구간 [A, B]에 속한 수 중에서 각 이진 자릿값이 1인 개수가 주어지면 숨은 A와 B를 복원하고 모호하거나 불가능하면 Many 또는 None을 출력합니다.
문제
를 의 아래에서 번째 비트, 곧 를 2진법으로 나타냈을 때 아래에서 번째 자리의 수라고 하자 (). 예를 들어 이므로 , , 이고, 인 모든 에 대해 이다.
정수 와 는 을 만족한다. 는 이면서 인 정수 의 개수다.
가 주어질 때 와 를 알아내는 프로그램을 작성하라.
입력
입력은 여러 개의 데이터 집합으로 이루어진다. 데이터 집합의 개수는 100,000을 넘지 않는다. 각 데이터 집합의 형식은 다음과 같다.
n
k1
k2
...
kn
각 데이터 집합의 첫 줄에는 정수 ()이 주어진다. 이어지는 개의 줄에는 각각 ()가 주어진다. 인 모든 에 대해 이다.
입력의 마지막 줄에는 이 주어진다. 이 줄에 대해서는 아무것도 출력하지 않는다.
출력
각 데이터 집합마다 한 줄씩 출력한다.
- 와 가 하나로 정해지면 와 를 공백 하나로 구분해 출력한다.
- 조건을 만족하는 가 둘 이상이면
Many를 따옴표 없이 출력한다. - 조건을 만족하는 가 하나도 없으면
None을 따옴표 없이 출력한다.