Pagini recente » Cod sursa (job #2824921) | Cod sursa (job #1922429) | Cod sursa (job #1679101) | Cod sursa (job #1840696) | Cod sursa (job #101968)
Cod sursa(job #101968)
#include <stdio.h>
#include <assert.h>
#include <algorithm>
using namespace std;
#define nmax 1024
#define lmax 50111
#define FOR(i,s,d) for(i=(s);i<(d);++i)
int n,m,B[nmax],A[nmax];
char viz[lmax];
int main()
{
int i,j;
assert(freopen("economie.in","r",stdin));
freopen("economie.out","w",stdout);
assert(scanf("%d",&n)==1);
assert(n<=1000);
assert(n>=1);
FOR(i,0,n)
{
assert(scanf("%d",&A[i])==1);
assert(A[i]<=50000);
assert(A[i]>=1);
}
sort(A,A+n);
FOR(i,0,n)
{
if(viz[A[i]])
continue;
B[m++]=A[i];
viz[A[i]]=1;
FOR(j,A[i],lmax-A[i])
viz[j+A[i]]|=viz[j];
}
printf("%d\n",m);
FOR(i,0,m)
printf("%d\n",B[i]);
return 0;
}