Pagini recente » Cod sursa (job #2439041) | Cod sursa (job #923957) | Cod sursa (job #2986363) | Cod sursa (job #25522) | Cod sursa (job #2732752)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
const int NMAX = 1003, valMAX = 50003;
int w[NMAX], minim, nrRest, maxim, sol[NMAX], nrSol;
bool ok[valMAX];
int main()
{
int n, i;
fin >> n;
minim = INT_MAX;
maxim = INT_MIN;
for(i = 1; i <= n; ++i)
fin >> w[i], minim = min(minim, w[i]), maxim = max(maxim, w[i]);
sort(w+1, w+1+n);
for(i = 1; i <= n; ++i){
///daca pot forma suma
if(ok[w[i]])
continue;
sol[++nrSol] = w[i];
ok[w[i]] = true;
int j;
for(j = 0; j + w[i] < valMAX; ++j)
if(ok[j])
ok[j + w[i]] = true;
}
fout << nrSol << '\n';
for(i = 1; i <= nrSol; ++i)
fout << sol[i] << ' ';
return 0;
}