提交记录
#include <iostream>
#include <cmath>
using namespace std;
#define ll unsigned long long
ll n,a[30];
ll conto2(int n){
ll r=n;
ll totto=0;
for(ll i=25;i>=1;i--){
if(a[i]>r)continue;
r-=a[i];
ll pp=pow(10,i);
totto+=pp;
}
return totto;
}
inline void ruwei(){
for(ll i=1;i<=25;i++){
a[i]=(ll)pow(2,i);
}
}
ll qw(ll n,ll w){
return (ll)n/(ll)pow(10,w-1)%(ll)10;
}
ll wss(ll n){
for(ll i=1,j=1;;i*=10,j++){
if(n>=i*10)continue;
else return j;
}
}
int main(){
cin>>n;
if(n%2){
cout<<-1<<endl;
return 0;
}
ruwei();
n=conto2(n);
ll wsz=wss(n);
for(int i=wsz;i>=1;i--){
if(qw(n,i)==1)cout<<a[i-1]<<" ";
}
cout<<endl;
return 0;
}