Cod sursa(job #2456593)

Utilizator bluestorm57Vasile T bluestorm57 Data 14 septembrie 2019 19:10:06
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 1005;
const int LIM = 50005;
int n,v[NMAX], dp[LIM], used[NMAX], MAX, ans;

int main(){
    int i,j;
    f >> n;
    for(i = 1 ; i <= n ; i++){
        f >> v[i];
        MAX = max(MAX, v[i]);
    }
    sort(v + 1, v + n + 1);
    dp[0] = 1;
    for(i = 1 ; i <= n ; i++)
        if(!dp[v[i]]){
            used[i] = 1;
            ans++;
            for(j = 0 ; j <= MAX - v[i]; j++)
                if(dp[j])
                    dp[j + v[i]] = 1;
        }

    g << ans << "\n";
    for(i = 1 ; i <= n ; i++)
        if(used[i])
            g << v[i] << "\n";


    return 0;
}