CF773C.Prairie Partition
提高+/省选-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
It can be shown that any positive integer x can be uniquely represented as x = 1 + 2 + 4 + ... + 2_k_ - 1 + r, where k and r are integers, k ≥ 0, 0 < r ≤ 2_k_. Let's call that representation prairie partition of x.
For example, the prairie partitions of 12, 17, 7 and 1 are:
12 = 1 + 2 + 4 + 5,
17 = 1 + 2 + 4 + 8 + 2,
7 = 1 + 2 + 4,
1 = 1.
Alice took a sequence of positive integers (possibly with repeating elements), replaced every element with the sequence of summands in its prairie partition, arranged the resulting numbers in non-decreasing order and gave them to Borys. Now Borys wonders how many elements Alice's original sequence could contain. Find all possible options!
可以证明,任意正整数 x 都能被唯一表示为
x=1+2+4+⋯+2k−1+r,
其中 k 和 r 为整数,满足 k≥0 且 0<r≤2k。我们称该表示为 x 的草原划分(prairie partition)。
例如,12、17、7 和 1 的草原划分如下:
- 12=1+2+4+5,
- 17=1+2+4+8+2,
- 7=1+2+4,
- 1=1。
Alice 取了一个正整数序列(元素可能重复),将其中每个元素替换为其草原划分中的所有加数,再将所有得到的数按非递减顺序排列后交给了 Borys。现在 Borys 想知道:Alice 原来的序列可能包含多少个元素?请找出所有可能的取值!
输入格式
The first line contains a single integer n (1 ≤ n ≤ 105) — the number of numbers given from Alice to Borys.
The second line contains n integers _a_1, _a_2, ..., a__n (1 ≤ a__i ≤ 1012; _a_1 ≤ _a_2 ≤ ... ≤ a__n) — the numbers given from Alice to Borys.
第一行包含一个整数 n(1≤n≤105)—— Alice 给 Borys 的数字个数。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤1012;且 a1≤a2≤⋯≤an)—— Alice 给 Borys 的数字。
输出格式
Output, in increasing order, all possible values of m such that there exists a sequence of positive integers of length m such that if you replace every element with the summands in its prairie partition and arrange the resulting numbers in non-decreasing order, you will get the sequence given in the input.
If there are no such values of m, output a single integer -1.
按升序输出所有可能的 $ m $ 值,使得存在一个长度为 $ m $ 的正整数序列,满足:将该序列中每个元素替换为其“草原划分”(prairie partition)中的各项加数,并将所有得到的数按非递减顺序排列后,恰好等于输入中给出的序列。
若不存在满足条件的 $ m $ 值,则输出单个整数 −1。
输入输出样例
输入#1
8 1 1 2 2 3 4 5 8
输出#1
2
输入#2
6 1 1 1 2 2 2
输出#2
2 3
输入#3
5 1 2 4 4 4
输出#3
-1
说明/提示
In the first example, Alice could get the input sequence from [6, 20] as the original sequence.
In the second example, Alice's original sequence could be either [4, 5] or [3, 3, 3].
在第一个例子中,Alice 可以将 [6, 20] 作为原始序列得到该输入序列。
在第二个例子中,Alice 的原始序列可以是 [4, 5] 或 [3, 3, 3]。
输入解题思路,AI测评打分。不知道怎么写?