Pagini recente » Cod sursa (job #2467751) | Cod sursa (job #1151) | Cod sursa (job #3167514) | Cod sursa (job #746546) | Cod sursa (job #2875618)
#include <bits/stdc++.h>
#define MAXN 1000
#define MAXX 50000
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
int main() {
int n, arr[MAXN];
vector<int> solutii;
bitset<MAXX> c;
fin >> n;
for (int i = 0; i < n; i++)
fin >> arr[i];
sort(arr, arr + n);
int maxi = arr[n - 1];
c[0] = 1;
for (int i = 0; i < n; i++) {
if (c[arr[i]])
continue;
solutii.push_back(arr[i]);
c[arr[i]] = 1;
for (int j = 0; j + arr[i] <= maxi; j++)
if (c[j])
c[arr[i] + j] = 1;
}
fout << solutii.size() << '\n';
for (auto &solutie: solutii)
fout << solutie << ' ';
return 0;
}