Cod sursa(job #2946289)

Utilizator Utucora2017Nicolae Utucora2017 Data 24 noiembrie 2022 18:31:11
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream cin("economie.in");
ofstream cout("economie.out");
int v[50005],dp[50005],sol[50005],nr;
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=50005;i++)
        dp[i]=-1;
    for(int i=1;i<=n;i++){
        cin>>v[i];
    }
    dp[0]=1;
    sort(v+1,v+n+1);
    for(int k=1;k<=n;k++){
        int val=v[k];
        if(dp[val]==-1){
            sol[++nr]=val;
            for(int i=0;i<=v[n]-val;i++)
                if(dp[i]!=-1)
                    dp[i+val]=1;
        }

    }
    cout<<nr<<"\n";
    for(int i=1;i<=nr;i++)
        cout<<sol[i]<<" ";
}