Cod sursa(job #1747763)

Utilizator catu_bogdan_99Catu Bogdan catu_bogdan_99 Data 25 august 2016 15:54:59
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <cstdio>
#include <algorithm>
using namespace std;

#define NMAX 1001
#define VMAX 50005

int v[ NMAX ];
int a[ VMAX ];
int r[ NMAX ];

int main()
{

    freopen("economie.in","r",stdin);
    freopen("economie.out","w",stdout);

    int n, i, j, k, s, d;

    scanf("%d",&n);
    for( i = 1; i <= n; ++i ) scanf("%d",&v[ i ]);

    sort( v + 1, v + 1 + n );

    s = 0;
    a[ 0 ] = 1;
    for( i = 1; i <= n; ++i ){
        if( !a[ v[ i ] ] ){
            r[ ++s ] = v[ i ];
            for( j = 0; j + v[ i ] <= v[ n ]; j++ )
                if( a[ j ] ) a[ j + v[ i ] ] = 1;
        }
    }

    printf("%d\n",s);
    for( i = 1; i <= s; ++i ) printf("%d\n",r[ i ]);

    return 0;

}