Cod sursa(job #110238)

Utilizator damaDamaschin Mihai dama Data 25 noiembrie 2007 22:19:49
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdio.h>
#include <algorithm>

using namespace std;



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

    int n, v[1024], used[50001], i, j, sol[1024];

    scanf("%d", &n);

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

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

    used[0] = 1;
    for(i = 1; i <= n; ++i)
    {
        if(!used[v[i]])
        {
            sol[++sol[0]] = v[i];
            for(j = 0; j <= 50000 - v[i]; ++j)
            {
                if(used[j])
                {
                    used[j + v[i]] = 1;
                }
            }
        }
    }

    printf("%d\n", sol[0]);

    for(i = 1; i <= sol[0]; ++i)
    {
        printf("%d\n", sol[i]);
    }

    return 0;
}