Pagini recente » Cod sursa (job #26585) | Cod sursa (job #2537978) | Cod sursa (job #74981) | Cod sursa (job #676171) | Cod sursa (job #2772615)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("economie.in");;
ofstream fout("economie.out");
int n, i, k, s[50005], v[1005], sol[1005], f[50005], nr, j;
int main(){
fin >> n;
for (i = 1; i <= n; i++){
fin >> v[i];
if ( f[ v[i] ] == 0 )
nr++;
f[ v[i] ] = 1;
}
sort(v + 1, v + n + 1);
s[0] = 1;
for (i = 1; i <= n && nr != 0; i++){
if ( f[ v[i] ] == 0)
continue;
for (j = 0; j + v[i] <= 50000; j++) {
if (s[j] == 1) {
if ( f[ j + v[i] ] == 1 ) {
nr--;
f[ j + v[i] ] = 0;
}
s[j + v[i]] = 1;
}
}
sol[++k] = v[i];
}
fout << k << "\n";
for (int i = 1; i <= k; i++)
fout << sol[i] << "\n";
return 0;
}