```c
#include<bits/stdc++.h>
using namespace std;
long long a[100];
int mi(int a,int b){
int s=1;
for(int i=1;i<=b;i++)
s*=a;
return s;
}
int main(){
long long m,k;
cin>>m;
for(int i=1;i<=100;i++){
if(mi(2,i)-1>=m){
k=i;
break;
}
}
cout<<k<<endl;
for(int i=0;i<k-1;i++)
a[i]=mi(2,i);
if(mi(2,k)-1==m)
a[k-1]=mi(2,k-1);
else
a[k-1]=m-mi(2,k-1)+1;
sort(a,a+k);
for(int i=0;i<=k-1;i++)
cout<<a[i]<<" ";
return 0;
}
```
by 祠云 @ 2018-10-27 10:24:53
@[祠云](/space/show?uid=106880) 啊啊啊
还是wa了一个点
难受
by 祠云 @ 2018-10-27 10:25:22
@[Jameswood](/space/show?uid=52428)
大佬快来帮帮我
by 祠云 @ 2018-10-27 10:25:58
额,泥的函数为什么是 $int$ 类型的……
by Jameswood @ 2018-10-27 10:27:41
@[祠云](/space/show?uid=106880)
by Jameswood @ 2018-10-27 10:27:48
嗯?
不对吗???
by 祠云 @ 2018-10-27 10:29:29
@[Jameswood](/space/show?uid=52428)
by 祠云 @ 2018-10-27 10:29:59
泥的 $a[]$ 开的是 $longlong$ 啊
by Jameswood @ 2018-10-27 10:34:18
最大的问题:如5,
1、2、2是错的(只有1能重复),但显然会输出1、2、2.
by 01190220csl @ 2018-11-03 19:58:55
试下5
会有两个2
by 不便透露 @ 2019-02-12 18:39:07