Cod sursa(job #112105)

Utilizator goguGogu Marian gogu Data 3 decembrie 2007 10:03:18
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <cstdio>
#include <algorithm>
#define Max 50100

int n, nr, a[1001], bun[1001];
char ok[Max];

int main()
{
    freopen("economie.in", "r", stdin);
    freopen("economie.out", "w", stdout);
    scanf("%d", &n);
    for (int i=0; i<n; i++)
        scanf("%d", a+i);
    std::sort(a, a+n);
    ok[0]=1;
    for (int i=0; i<n; i++){
        int k = a[i];
        if (ok[k]) continue;
        bun[nr++]=k;
        for (int j=k; j<Max; j++)
            if (!ok[j] && ok[j-k]) ok[j]=1;
    }
    printf("%d\n", nr);
    while (nr--)
          printf("%d\n", bun[nr]);
    return 0;    
}