Cod sursa(job #3367603)

Utilizator PortallosAlexandru Vladimir Portallos Data 8 octombrie 2026 20:33:53
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("economie.in");
ofstream fout("economie.out");

int n;
int coins[1001];
bool dp[50001];
int totalSum;
vector<int> sol;

int main() {

    fin>>n;
    for(int i = 1; i <= n; i++)
        fin>>coins[i];

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

    dp[0] = true;

    for (int i = 1; i <= n ; i++) {
        if (dp[coins[i]])
            continue;

        sol.push_back(coins[i]);

        for (int j = coins[i]; j <= 50000; j++)
            if (dp[j - coins[i]])
                dp[j] = true;
    }

    fout<<sol.size()<<"\n";

    for(int i : sol)
        fout<<i<<"\n";

    return 0;
}