Cod sursa(job #1133886)

Utilizator dragangabrielDragan Andrei Gabriel dragangabriel Data 5 martie 2014 19:28:36
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<bitset>
#define nmax 50000
using namespace std;
bitset<50005>sum;
int n,i,j,k,v[1005],res[1005];

int main()
{
    freopen("economie.in","r",stdin);
    freopen("economie.out","w",stdout);
    scanf("%d",&n);
    for (i=1;i<=n;i++) scanf("%d",&v[i]);
    sort(v+1,v+n+1);
    for (i=1;i<=n;i++)
        if (!sum[v[i]])
        {
            res[++k]=v[i];
            sum[v[i]]=1;
            for (j=1;j<=nmax-v[i];j++)
                if (sum[j]) sum[j+v[i]]=1;
        }
    printf("%d\n",k);
    for (i=1;i<=k;i++)
        printf("%d\n",res[i]);
    return 0;
}