Pagini recente » Cod sursa (job #75444) | Cod sursa (job #3042138) | Cod sursa (job #1791015) | Cod sursa (job #3253911) | Cod sursa (job #109524)
Cod sursa(job #109524)
#include<stdio.h>
#include<algorithm>
using namespace std;
int nr[1010],sol[1010],s,minim;
void sum(int i,int j){
if(j<minim){
while(sol[j]+s<=nr[i]){
s+=sol[j];
sum(i,j+1);
}
}
}
int main(){
freopen("economie.in","r",stdin);
freopen("economie.out","w",stdout);
int n,i,j,ok;
scanf("%d",&n);
for(i=0;i<n;++i)
scanf("%d",&nr[i]);
sort(nr,nr+n);
sol[0]=nr[0];
minim=1;
for(i=1;i<n;++i){
ok=1;
for(j=0;j<minim && ok;++j){
s=0;
sum(i,j);
if(s==nr[i])
ok=0;
}
if(ok){
sol[minim]=nr[i];
++minim;
}
}
printf("%d\n",minim);
for(i=0;i<minim;++i)
printf("%d\n",sol[i]);
fclose(stdin);
fclose(stdout);
return 0;
}