Pagini recente » Cod sursa (job #2530570) | Cod sursa (job #3220878) | Cod sursa (job #1841287) | Cod sursa (job #2177215) | Cod sursa (job #2982966)
#include<iostream>
#include<vector>
#include<algorithm>
#include<bitset>
using namespace std;
const int VMAX = 5e4 + 1;
bitset<VMAX> putem;
int main()
{
freopen("economie.in","r",stdin);
freopen("economie.out","w",stdout);
int n; cin >> n;
vector<int> v(n);
for(int i = 0; i < n ; i++) cin >> v[i];
sort(v.begin(),v.end());
vector<int> ans;
putem[0] = 1;
for(auto it : v)
{
if(putem[it])
continue;
ans.push_back(it);
for(int i = it; i < VMAX ; i++)
{
if(putem[i])
continue;
if(putem[i - it])
putem[i] = 1;
}
}
cout << ans.size() << '\n';
for(auto it : ans)
cout << it << " ";
return 0;
}