Pagini recente » Cod sursa (job #100586) | Cod sursa (job #1318790) | Cod sursa (job #1300691) | Cod sursa (job #2805455) | Cod sursa (job #114010)
Cod sursa(job #114010)
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
const int Vmax = 50100;
int N,dp[Vmax];
vector <int> v,ret;
int main()
{
int i,j,a;
freopen("economie.in","r",stdin);
freopen("economie.out","w",stdout);
scanf("%d",&N);
for (i=0;i<N;++i)
{
scanf("%d",&a);
v.push_back(a);
}
sort(v.begin(),v.end());
dp[0]=1;
for (i=0;i<N;++i)
if ( dp[v[i]] == 0 )
{
ret.push_back(v[i]);
for (j=0;j+v[i]<Vmax;++j)
if ( dp[j] )
dp[j+v[i]]=1;
}
printf("%d\n",ret.size());
for (i=0;i<ret.size();++i)
printf("%d\n",ret[i]);
return 0;
}