Cod sursa(job #3156286)

Utilizator DajaMihaiDaja Mihai DajaMihai Data 11 octombrie 2023 08:27:27
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>

using namespace std;

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

int n, a;
int dp[50001], v[1001];
int sol[1001], solPos;
int main()
{
    in >> n;
    for(int i = 0; i < n; i ++){
        in >> v[i];
    }
    sort(v, v+n);
    
    for(int i = 0; i < n; i ++){
       if(dp[v[i]] == 0){
            sol[solPos] = v[i];
            solPos ++;
            dp[v[i]] = 1;
            for(int j = 1; j <= 50000; j ++){
                if(dp[j] == 1 && j + v[i] <= 50000){
                    dp[j+v[i]] = 1;
                }
            }
        }
    }

    out << solPos << endl;
    for(int i = 0; i < solPos; i ++){
        out << sol[i] << endl;
     }
    return 0;
}