A. 优秀的拆分

    传统题 文件IO:power 1000ms 256MiB

优秀的拆分

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

一般来说,一个正整数可以拆分成若干个正整数的和。例如,1=11=1,10=1+2+3+410=1+2+3+4 等。

对于正整数 nn 的一种特定拆分,我们称它为“优秀的”,当且仅当在这种拆分下,nn 被分解成若干个不同的 22 的正整数次幂。注意,一个数 xx 能表示成 22 的正整数次幂,当且仅当 xx 能通过正整数个 22 相乘得到。

例如,10=8+2=23+2110=8+2=2^3+2^1 是一个优秀的拆分。但是,7=4+2+1=22+21+207=4+2+1=2^2+2^1+2^0 不是一个优秀的拆分,因为 11 不是 22 的正整数次幂。

现在给定正整数 nn,请判断是否存在优秀的拆分。若存在,请给出具体的拆分方案。

输入格式

从 power.in 读入。输入文件只有一行,包含一个正整数 nn。

输出格式

向 power.out 输出。如果存在优秀的拆分,从大到小输出拆分中的每个数,相邻两个数之间用一个空格隔开。可以证明,在规定了拆分数字的顺序后,该拆分方案唯一。

如果不存在优秀的拆分,输出 -1。

样例

6
4 2
7
-1

样例说明

6=4+2=22+216=4+2=2^2+2^1 是优秀的拆分;6=2+2+26=2+2+2 不是,因为拆分出的数没有两两不同。

数据范围与提示

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

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

对于另外 20%20\% 的数据,保证 nn 为 22 的正整数次幂。

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

对于 100%100\% 的数据,1≤n≤1071\le n\le10^7。

CSPJ 限时测试

未参加
状态
已结束
规则
OI
题目
4
开始于
2026-10-18 9:00
结束于
2026-10-18 10:30
持续时间
1.5 小时
主持人
参赛人数
1