Pagini recente » Cod sursa (job #1144546) | Cod sursa (job #374978) | Cod sursa (job #764242) | Cod sursa (job #2126636) | Cod sursa (job #2503824)
#include <bits/stdc++.h>
using namespace std;
const int nmax=1005;
const int kmax=5e4+5;
queue<int>q;
int v[nmax],dp[kmax];
int main()
{
ifstream cin("economie.in");
ofstream cout("economie.out");
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n,nr=0;
cin>>n;
for(int i=1; i<=n; i++)
cin>>v[i];
sort(v+1,v+n+1);
dp[0]=1;
for(int i=1; i<=n; i++)
if(dp[v[i]]==0)
{
nr++;
q.push(i);
for(int j=0; j<=kmax-v[i]; j++)
dp[j+v[i]]=max(dp[j+v[i]],(int)(dp[j]==1));
}
cout<<nr<<"\n";
while(!q.empty())
{
cout<<v[q.front()]<<"\n";
q.pop();
}
return 0;
}