Cod sursa(job #3146950)

Utilizator SSKMFSS KMF SSKMF Data 23 august 2023 15:06:44
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#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 ()
{
    ios :: sync_with_stdio(false);
    
    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 - valoare[indice]];
        }

    cout << pastrate[0] << '\n';
    for (int indice = 1 ; indice <= pastrate[0] ; indice++)
        cout << pastrate[indice] << '\n';

    cout.close(); cin.close();
    return 0;
}