Pagini recente » Cod sursa (job #3226078) | Cod sursa (job #2828704) | Cod sursa (job #2297329) | Cod sursa (job #3240942) | Cod sursa (job #3259092)
#include <fstream>
#include <bitset>
#include <vector>
#include <algorithm>
using namespace std;
ifstream cin("economie.in");
ofstream cout("economie.out");
vector<int>elemselectate;
short v[1001],n;
bitset<50001>frecv;
bool canyoubuildnumber(int num){
if(elemselectate.size() == 0)
return 0;
int ind=1;
frecv.reset();
for(auto elem:elemselectate){
frecv[elem]=1;
}
for(int h=0;h<elemselectate.size();h++)
for(int i=1;i<=num-elemselectate[h];i++)
{
if(frecv[i] == 1)
frecv[i+elemselectate[h]]=1;
}
return frecv[num];
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
sort(v+1,v+n+1);
for(int i=1;i<=n;i++)
{
if(canyoubuildnumber(v[i]) == 1)
continue;
elemselectate.push_back(v[i]);
}
cout<<elemselectate.size()<<'\n';
for(int i=0;i<elemselectate.size();i++)
cout<<elemselectate[i]<<'\n';
return 0;
}