Pagini recente » Cod sursa (job #521300) | Cod sursa (job #1562149) | Cod sursa (job #925362) | Cod sursa (job #658209) | Cod sursa (job #120122)
Cod sursa(job #120122)
#include<stdio.h>
#include<algorithm>
#define lg1 1005
#define lg2 50005
using namespace std;
int n, i, j, v[lg1], q[lg2], mx, d[lg2], x, fst[lg2], sol[lg1], rht[lg1];
int main()
{
freopen("economie.in", "rt", stdin);
freopen("economie.out", "wt", stdout);
scanf("%d", &n);
for (i = 1; i <= n; i ++){
scanf("%d", &v[i]);
q[v[i]] = 1;
mx = max(mx, v[i]);
}
sort(v+1, v+n+1);
d[0] = 1;
for (i = 1; i <= n; i ++)
for (j = 0; j <= mx; j ++)
if (d[j]){
x = j + v[i];
if (x <= mx){
d[x] = 1;
if (q[x] == 1 && !fst[x]){
if (!rht[i])
sol[++sol[0]] = v[i], rht[i] = 1;
fst[x] = 1;
}
}
}
printf("%d\n", sol[0]);
for (i = 1; i <= sol[0]; i ++)
printf("%d\n", sol[i]);
fclose(stdin);
fclose(stdout);
return 0;
}