Cod sursa(job #113583)

Utilizator filipbFilip Cristian Buruiana filipb Data 10 decembrie 2007 20:47:45
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <stdio.h>

int N, v[50005], res[50005], bst;

int main(void)
{
    int i, j;
    
    freopen("economie.in", "r", stdin);
    freopen("economie.out", "w", stdout);

    scanf("%d", &N);
    for (i = 1; i <= N; i++)
    {
        scanf("%d", &j);
        v[j] = 1;
    }

    res[0] = 1;
    for (i = 1; i <= 50000; i++)
    {
        if (v[i] && !res[i])
        {
            for (j = i; j <= 50000; j++)
                res[j] |= res[j-i];
            bst++; v[i]++;
        }
        
    }

    printf("%d\n", bst);
    for (i = 1; i <= 50000; i++)
        if (v[i] > 1)
            printf("%d\n", i);

    return 0;
}