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