Cod sursa(job #287570)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 24 martie 2009 22:52:46
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<algorithm>
using namespace std;

#define DIM 100001
#define MAX 50001

int n,a[DIM/100],sol[DIM/100],f[DIM];

void solve(){
    int i,j,m;

    scanf("%d",&n);
    for(i=1; i<=n; ++i)
        scanf("%d",&a[i]);
    sort(a+1,a+n+1);
    for(i=f[0]=1,m=0; i<=n; ++i)
        if(!f[a[i]]){
            sol[++m]=a[i];
            for(j=0; j<MAX; ++j)
                if(f[j])
                    ++f[j+a[i]];}
    printf("%d\n",m);
    for(i=1; i<=m; ++i)
        printf("%d\n",sol[i]);}

int main(){
    freopen("economie.in","r",stdin);
    freopen("economie.out","w",stdout);
    solve();
    return 0;}