Pagini recente » Cod sursa (job #625254) | Cod sursa (job #2642070) | Cod sursa (job #1814427) | Cod sursa (job #2553381) | Cod sursa (job #1612200)
#include <algorithm>
#include <fstream>
#include <bitset>
#include <cstdio>
#define NMAX 50005
using namespace std;
int v[1005] , ans[1005];
int n , mx , sol;
bitset <NMAX> c;
void read(int &x) {
char ch;
while(!isdigit(ch = getchar())) {
}
do {
x = x * 10 + ch - '0';
}while(isdigit(ch = getchar()));
}
int main() {
freopen("economie.in" , "r" , stdin);
freopen("economie.out" , "w" , stdout);
read(n);
for(int i = 1 ; i <= n ; ++i) {
read(v[i]);
mx = max(mx , v[i]);
}
sort(v + 1 , v + n + 1);
c[0] = 1;
for(int i = 1 ; i <= n ; ++i) {
if(c[v[i]] == 0) {
for(int j = v[i] ; j <= mx ; ++j) {
if(c[j] == 0) {
c[j] = c[j - v[i]];
}
}
ans[++sol] = v[i];
}
}
printf("%d\n" , sol);
for(int i = 1 ; i <= sol ; ++i) {
printf("%d\n" , ans[i]);
}
return 0;
}