Pagini recente » Cod sursa (job #2577097) | Cod sursa (job #17837) | Cod sursa (job #1673952) | Cod sursa (job #2230882) | Cod sursa (job #1230571)
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
const int NMAX = 105, VMAX = 50000;
int v[NMAX], vis[VMAX + 10];
vector <int> sol;
vector <int>::iterator it;
int main() {
freopen("economie.in", "r", stdin);
freopen("economie.out", "w", stdout);
int n, i, j, lim;
scanf("%d", &n);
for(i = 1; i <= n; ++ i)
scanf("%d", &v[i]);
sort(v + 1, v + 1 + n);
vis[0] = 1;
lim = 0;
for(i = 1; i <= n; ++ i)
if(!vis[v[i]]) {
sol.push_back(v[i]);
vis[v[i]] = 1;
for(j = 0; j + v[i] <= VMAX; ++ j)
if(vis[j])
vis[j + v[i]] = 1;
lim += v[i];
}
printf("%d\n", sol.size());
for(it = sol.begin(); it != sol.end(); ++ it)
printf("%d\n", *it);
return 0;
}