Pagini recente » Cod sursa (job #470867) | Cod sursa (job #219373) | Cod sursa (job #2522320) | Cod sursa (job #3138953) | Cod sursa (job #1021397)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
const int nmax= 1000;
const int smax= 50000;
int v[nmax+1], sol[nmax+1];
bool sum[smax+1];
int main( ) {
int n;
fin>>n;
for ( int i= 1; i<=n; ++i ) {
fin>>v[i];
}
sort(v+1, v+n+1);
int k= 1;
sum[0]= 1;
for ( int i= 1; i<=n; ++i ) {
if ( sum[v[i]]==1 ) {
continue;
}
sol[k]= v[i];
++k;
for ( int j= 0; j<=smax-v[i]; ++j ) {
if ( sum[j]==1 ) {
sum[j+v[i]]= 1;
}
}
}
fout<<k-1<<"\n";
for ( int i= 1; i<k; ++i ) {
fout<<sol[i]<<"\n";
}
return 0;
}