千万别信最后的n≤10^7。本蒟蒻开始时相信了,结果RE了四个点。最后下样例才发现第17个点n
=9999998
https://www.luogu.com.cn/record/169248391
#include <bits/stdc++.h>
using namespace std;
int a[25]={0,2};
bool vis[25];
int n;
void cf(){
for(int i=1;a[i]<=n;i++){
if(a[i+1]>n&&vis[i]==0){
cout<<a[i]<<" ";
n-=a[i];
vis[i]=1;
}
}
}
int main(){
memset(vis,0,sizeof vis);
cin>>n;
if(n%2==1){
cout<<-1;
return 0;
}
for(int i=2;i<=21;i++){
a[i]=a[i-1]*2;
}
while(n){
cf();
}
return 0;
}
笑死直接被硬控半小时