在loj上提交显示AC
在luogu上提交显示WA
两者代码一模一样,怎么肥四?
#include<bits/stdc++.h>
#define re register int
using namespace std;
int n,a[1000],t;
bool dfs(int m){
if(m-1==t)return a[m-1]==n;
if(a[m-1]*1<<(t-m+1)<n)return false;
for(re i=1;i<=m-1;i++){
for(re j=i;j<=m-1;j++){
a[m]=a[i]+a[j];
if(a[m]>n)break;
if(a[m]<=a[i-1])continue;
if(dfs(m+1))return true;
}
}
return false;
}
int main(){
while(true){
scanf("%d",&n);
if(n==0)return 0;
for(t=1;t<=n;t++){
a[1]=1;
if(dfs(2)){
int i=0;
while(a[++i]){
printf("%d ",a[i]);
}
printf("\n");
break;
}
memset(a,0,sizeof(a));
}
}
return 0;
}