Cod sursa(job #2401834)

Utilizator viftode4Iftode Vlad viftode4 Data 10 aprilie 2019 09:28:41
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ( "economie.in" );
ofstream fout ( "economie.out" );
int n;
int a[1010];
int luatsum[50005];
vector<int>sol;
int main() {
    fin >> n;

    for ( int i = 1; i <= n; i++ )
        fin >> a[i];

    sort ( a + 1, a + n + 1 );
    luatsum[0] = 1;

    for ( int i = 1; i <= n; i++ ) {
        if ( luatsum[a[i]] == 0 ) {
            sol.push_back ( a[i] );

            for ( int j = 0; j + a[i] <= 50000; j++ )
                if ( luatsum[j] == 1 )
                    luatsum[j + a[i]] = 1;
        }
    }

    fout << sol.size() << '\n';

    for ( auto it : sol )
        fout << it << '\n';

    return 0;
}