Pagini recente » Cod sursa (job #1891743) | Cod sursa (job #3163172) | Cod sursa (job #1602882) | Cod sursa (job #3142176) | Cod sursa (job #499557)
Cod sursa(job #499557)
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=1<<10;
const int MAX=1<<16;
int n,q,t[N],v[N],f[MAX];
void read()
{
freopen("economie.in","r",stdin);
freopen("economie.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&t[i]);
}
void init()
{
f[0]=true;
sort(t+1,t+n+1);
}
void marc(int x)
{
for(int i=0;i<MAX;i++)
if(f[i] && i+x<MAX)
f[i+x]=true;
}
void solve()
{
for(int i=1;i<=n;i++)
if(!f[t[i]])
{
marc(t[i]);
v[++q]=t[i];
}
}
void afis()
{
printf("%d\n",q);
for(int i=1;i<=q;i++)
printf("%d\n",v[i]);
}
int main()
{
read();
init();
solve();
afis();
return 0;
}