Cod sursa(job #2503824)

Utilizator gavra_bogdanBogdan Gavra gavra_bogdan Data 3 decembrie 2019 20:12:05
Problema Divk Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;

const int nmax=1005;
const int kmax=5e4+5;

queue<int>q;
int v[nmax],dp[kmax];

int main()
{
    ifstream cin("economie.in");
    ofstream cout("economie.out");
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n,nr=0;
    cin>>n;
    for(int i=1; i<=n; i++)
        cin>>v[i];
    sort(v+1,v+n+1);
    dp[0]=1;
    for(int i=1; i<=n; i++)
        if(dp[v[i]]==0)
        {
            nr++;
            q.push(i);
            for(int j=0; j<=kmax-v[i]; j++)
                dp[j+v[i]]=max(dp[j+v[i]],(int)(dp[j]==1));
        }
    cout<<nr<<"\n";
    while(!q.empty())
    {
        cout<<v[q.front()]<<"\n";
        q.pop();
    }
    return 0;
}