Pagini recente » Cod sursa (job #1126799) | Cod sursa (job #2070024) | Cod sursa (job #1087148) | Cod sursa (job #2459621) | Cod sursa (job #109850)
Cod sursa(job #109850)
#include <stdio.h>
#include <algorithm>
using namespace std;
const int N_MAX = 1024;
const int V_MAX = 50010;
int v[N_MAX], is[V_MAX], sol[N_MAX];
int main()
{
freopen("economie.in", "r", stdin);
#ifndef _SCREEN_
freopen("economie.out", "w", stdout);
#endif
int N, i, mx = 0;
scanf("%d\n", &N);
for (i = 1; i <= N; i ++) {
scanf("%d ", &v[i]);
if (v[i] > mx) mx = v[i];
}
sort(v + 1, v + N + 1);
is[0] = 1;
int j;
for (i = 1; i <= N; i ++) {
if (!is[v[i]]) {
sol[++ sol[0]] = v[i];
for (j = 0; j <= mx; j ++) {
if (is[j] && j + v[i] <= mx) is[j + v[i]] = 1;
}
}
}
printf("%d\n", sol[0]);
for (i = 1; i <= sol[0]; i ++) {
printf("%d\n", sol[i]);
}
return 0;
}