Pagini recente » Cod sursa (job #232207) | Cod sursa (job #2866157) | Cod sursa (job #1859656) | Cod sursa (job #1874538) | Cod sursa (job #2487075)
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int N = 1000 + 7;
const int S = 50000 + 7;
int n, a[N], sol[N], top;
bool ok[S];
int main()
{
freopen ("economie.in", "r", stdin);
freopen ("economie.out", "w", stdout);
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
}
sort(a + 1, a + n + 1);
ok[0] = 1;
for (int i = 1; i <= n; i++)
{
if (ok[a[i]] == 0)
{
sol[++top] = a[i];
for (int j = 0; j + a[i] <= a[n]; j++)
{
if (ok[j])
{
ok[j + a[i]] = 1;
}
}
}
}
cout << top << "\n";
for (int i = 1; i <= top; i++)
{
cout << sol[i] << " ";
}
cout << "\n";
return 0;
}