Cod sursa(job #1309324)
| Utilizator | Data | 5 ianuarie 2015 17:45:59 | |
|---|---|---|---|
| Problema | Economie | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.55 kb |
#include<cstdio>
#include<algorithm>
using namespace std;
int n,i,j,p,q,v[1005];
int w[50005],sol[1005];
int main()
{
freopen("economie.in","r",stdin);
freopen("economie.out","w",stdout);
scanf("%d",&n); w[0]=1;
for (i=1;i<=n;i++)
scanf("%d",&v[i]);
sort(v+1,v+n+1);
for (i=1;i<=n;i++)
if (!w[v[i]])
{
sol[++sol[0]]=v[i];
for (j=0;j<=v[n]-v[i];j++) if (w[j])
w[j+v[i]]=1;
}
printf("%d\n",sol[0]);
for (i=1;i<=sol[0];i++)
printf("%d\n",sol[i]);
return 0;
}
