Cod sursa(job #2456456)

Utilizator TheNextGenerationAyy LMAO TheNextGeneration Data 14 septembrie 2019 13:36:37
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("economie.in");
ofstream out("economie.out");
const int N =  1005;
const int V = 50005;
int v[N];
bool used[N],dp[V];

int main()
{
    int n,Max=0,cnt=0;
    in >> n;
    for (int i = 1; i<=n; i++)
    {
        in >> v[i];
        Max = max(Max,v[i]);
    }
    sort(v+1,v+n+1);
    dp[0] = 1;
    for (int i = 1; i<=n; i++)
        if (!dp[v[i]])
        {
            used[i] = 1;
            cnt++;
            for (int j = 0; j<=Max-v[i]; j++)
                if (dp[j])
                    dp[j+v[i]] = 1;
        }
    out << cnt << "\n";
    for (int i = 1; i<=n; i++)
        if (used[i])
            out << v[i] << "\n";
}