Pagini recente » Cod sursa (job #2600378) | Cod sursa (job #941894) | Cod sursa (job #1655041) | Cod sursa (job #1406802) | Cod sursa (job #3146948)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin ("economie.in");
ofstream cout ("economie.out");
int valoare[1001] , pastrate[1001];
bool posibil[50001];
int main ()
{
int lungime;
cin >> lungime;
for (int indice = 1 ; indice <= lungime ; indice++)
cin >> valoare[indice];
sort(valoare + 1 , valoare + lungime + 1);
posibil[0] = true;
for (int indice = 1 ; indice <= lungime ; indice++)
if (!posibil[valoare[indice]])
{
pastrate[++pastrate[0]] = valoare[indice];
for (int suma = valoare[indice] ; suma <= 50000 ; suma++)
posibil[suma] = (posibil[suma] || posibil[suma - valoare[indice]]);
}
cout << pastrate[0] << '\n';
for (int indice = 1 ; indice <= pastrate[0] ; indice++)
cout << pastrate[indice] << '\n';
cout.close(); cin.close();
return 0;
}