아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

1의 개수 세기

시간 제한8초메모리 제한256 MB

요약
구간 [A, B]에 속한 수 중에서 각 이진 자릿값이 1인 개수가 주어지면 숨은 A와 B를 복원하고 모호하거나 불가능하면 Many 또는 None을 출력합니다.
난이도

어려움10점 중 8점

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

문제

bi(x)b_i(x)를 xx의 아래에서 ii번째 비트, 곧 xx를 2진법으로 나타냈을 때 아래에서 ii번째 자리의 수라고 하자 (i≥1i \ge 1). 예를 들어 6=(110)26 = (110)_2이므로 b1(6)=0b_1(6) = 0, b2(6)=1b_2(6) = 1, b3(6)=1b_3(6) = 1이고, i≥4i \ge 4인 모든 ii에 대해 bi(6)=0b_i(6) = 0이다.

정수 AA와 BB는 1≤A≤B≤10181 \le A \le B \le 10^{18}을 만족한다. kik_i는 A≤x≤BA \le x \le B이면서 bi(x)=1b_i(x) = 1인 정수 xx의 개수다.

{ki}\{k_i\}가 주어질 때 AA와 BB를 알아내는 프로그램을 작성하라.

입력

입력은 여러 개의 데이터 집합으로 이루어진다. 데이터 집합의 개수는 100,000을 넘지 않는다. 각 데이터 집합의 형식은 다음과 같다.

n
k1
k2
...
kn

각 데이터 집합의 첫 줄에는 정수 nn (1≤n≤641 \le n \le 64)이 주어진다. 이어지는 nn개의 줄에는 각각 kik_i (0≤ki≤263−10 \le k_i \le 2^{63} - 1)가 주어진다. i>ni > n인 모든 ii에 대해 ki=0k_i = 0이다.

입력의 마지막 줄에는 n=0n = 0이 주어진다. 이 줄에 대해서는 아무것도 출력하지 않는다.

출력

각 데이터 집합마다 한 줄씩 출력한다.

  • AA와 BB가 하나로 정해지면 AA와 BB를 공백 하나로 구분해 출력한다.
  • 조건을 만족하는 (A,B)(A, B)가 둘 이상이면 Many를 따옴표 없이 출력한다.
  • 조건을 만족하는 (A,B)(A, B)가 하나도 없으면 None을 따옴표 없이 출력한다.

예제2

  1. 예제 1

    입력
    3
    2
    2
    1
    49
    95351238128934
    95351238128934
    95351238128932
    95351238128936
    95351238128936
    95351238128936
    95351238128960
    95351238128900
    95351238128896
    95351238129096
    95351238128772
    95351238129096
    95351238129096
    95351238126156
    95351238131712
    95351238131712
    95351238149576
    95351238093388
    95351238084040
    95351237962316
    95351238295552
    95351237911684
    95351237911684
    95351235149824
    95351233717380
    95351249496652
    95351249496652
    95351226761216
    95351226761216
    95351082722436
    95351082722436
    95352054803020
    95352156464260
    95348273971200
    95348273971200
    95354202286668
    95356451431556
    95356451431556
    95346024826312
    95356451431556
    95356451431556
    94557999988736
    94256939803780
    94256939803780
    102741546035788
    87649443431880
    87649443431880
    140737488355328
    32684288648324
    64
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    11
    0
    0
    1
    1
    1
    0
    1
    1
    1
    1
    1
    63
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    1
    4
    1
    1
    1
    1
    0
    
    예상 출력
    1 4
    123456789101112 314159265358979
    None
    2012 2012
    None
    Many
    
  2. 예제 2

    입력
    1
    1
    1
    0
    2
    1
    1
    3
    2
    2
    3
    0
    
    예상 출력
    1 1
    None
    Many
    Many