Pagini recente » Cod sursa (job #3141505) | Cod sursa (job #3251035) | Cod sursa (job #1956548) | Cod sursa (job #1318196) | Cod sursa (job #2736098)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1000, NRMAX = 5e4;
int n, a[NMAX + 1], fr[NRMAX + 1];
bool notOk[NRMAX + 1];
set<int> st;
int main()
{
freopen("economie.in", "r", stdin);
freopen("economie.out", "w", stdout);
scanf("%d", &n);
for(int i = 1; i <= n; ++i) {
scanf("%d", &a[i]), ++fr[a[i]];
}
int cnt = 0;
sort(a + 1, a + n + 1), notOk[0] = 1;
for(int i = 1; i <= n; ++i)
if(!notOk[a[i]]) {
st.insert(i);
for(int j = 0; j + a[i] <= NRMAX; ++j)
if(notOk[j]) notOk[j + a[i]] = 1;
}
printf("%d\n", (int)st.size());
for(const auto &el : st) printf("%d\n", a[el]);
return 0;
}