Pagini recente » Cod sursa (job #525559) | Cod sursa (job #1964923) | Cod sursa (job #1032734) | Cod sursa (job #318472) | Cod sursa (job #206190)
Cod sursa(job #206190)
#include <stdio.h>
#include <math.h>
long n, i, v[50001], a[1001], fol[1001], j, o, din[50001];
int main() {
freopen("economie.in", "r", stdin);
freopen("economie.out", "w", stdout);
long max = 0;
scanf("%ld", &n);
for (i = 1; i <= n; ++i) {
scanf("%ld", &a[i]);
v[a[i]] = 1;
if (a[i] > max) {
max = a[i];
}
}
for (i = 1; i <= max; ++i) {
if (v[i] == 1 && din[i] != 1) {
din[i] = 1;
fol[++o] = i;
for (j = 1; j <= o; ++j) {
if (i + fol[j] < 50001) {
din[i + fol[j]] = 1;
}
}
} else {
if (din[i] == 1) {
for (j = 1; j <= o; ++j) {
if (i + fol[j] < 50001) {
din[i + fol[j]] = 1;
}
}
}
}
}
printf("%ld\n", o);
for (i = 1; i <= o; ++i) {
printf("%ld ", fol[i]);
}
return 0;
}