#2320. P2933 - 完美的求和 - JOYSKID

P2933 - 完美的求和 - JOYSKID

题目描述

对于正整数n,可以有若干个不同的 2 的正整数次幂求和得到n,我们就称为完美的求和。

例如 image这就是一个完美的求和,但是,image ,就不是一个完美的求和。因为1不是2的正整数幂。

有一个正整数n,请你判断n有没有完美的求和,若存在,请写出具体的求和,如果不存在,请输出-1。

输入格式

输入文件只有一行,一个正整数 n,代表需要判断的数。

【数据范围与提示】

对于 20% 的数据, n ≤ 10。

对于另外 20% 的数据,保证 n 为奇数。

对于另外 20% 的数据,保证 n 为 2 的正整数次幂。

对于 80% 的数据, n ≤ 1024。

对于 100% 的数据, 1 ≤ n ≤ 1 × 10710^7

输出格式

如果有完美的求和,那么, 从大到小输出这个求和中的每一个数, 相邻两个数之间用一个空格隔开。 可以证明, 在规定了拆分数字的顺序后, 该求和方案是唯一的。 若不存在完美的求和,输出“-1”(不包含双引号)。

6
4 2

提示

【样例 1 解释】

6 = 4 + 2 = 22+212^2 + 2^1 是完美的求和。注意, 6 = 2 + 2 + 2 不是完美的求和,因为拆分成的 3 个数不满足每个数互不相同。

【样例 2 输入】

7

【样例 2 输出】

-1