记录编号 192825 评测结果 AAAAAAAAAA
题目名称 [HNOI 2006]鬼谷子的钱袋 最终得分 100
用户昵称 Gravatar阿狸 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2015-10-13 06:18:30 内存使用 0.70 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int m;
int a[100010];
int main()
{
	freopen("wallet.in","r",stdin);
	freopen("wallet.out","w",stdout);
	cin>>m;
	int s=1;
	int sum=1;
	while(sum<m){
		a[++a[0]]=s;
		s*=2;
		sum+=s;
	}
	a[++a[0]]=m-(sum-s);
	sort(a+1,a+a[0]+1);
	for(int i=1;i<a[0];++i)
	    if(a[i]==a[i+1]&&a[i]!=1)a[i]--,a[i+1]++;
	cout<<a[0]<<endl;
	for(int i=1;i<=a[0];++i)
	    cout<<a[i]<<" ";
	return 0;
}