#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int m;
int p[100];
p[0]=1;
for(int i=1;;i++)
{
p[i]=2*p[i-1];
if(p[i]*2>100000000) break;
}
cin>>m;
int x[100],n=0;
for(int i=0;m>0;i++)
{
x[++n]=min(p[i],m);
m-=p[i];
// cout<<x[n]<<' '<<p[i]<<' '<<m<<endl;
}
cout<<n<<endl;
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
if(x[i]==x[j])
{
x[i]--;
x[j]++;
}
sort(x+1,x+n+1);
for(int i=1;i<=n;i++)
cout<<x[i]<<' ';
return 0;
}
实在调不出来了,请dalao们帮忙查错,怀疑是被某些毒瘤用例卡掉了