Cod sursa(job #2501219)

Utilizator Cojocaru_Andrei_CristianCojocaru Andrei Cristian Cojocaru_Andrei_Cristian Data 29 noiembrie 2019 11:29:34
Problema Economie Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#include <algorithm>
using namespace std;
int v[1005],f[50005],viz[50005],s[1005];
int main()
{
    ifstream cin("economie.in");
    ofstream cout("economie.out");
    int n,k=0,x,ma=-1;
    cin>>n;
    for(int i=1; i<=n; i++)
    {
        cin>>x;
        if(viz[x]==0)
        {
            viz[x]=1;
            v[++k]=x;
            if(x>ma)
               ma=x;
        }
    }
    sort(v+1,v+k+1);
    int cnt=0;
    if(v[1]==1)
    {
        cout<<1<<"\n"<<1;
        return 0;
    }
    for(int i=1; i<=k; i++)
    {
        if(f[v[i]]==0)
        {
        f[v[i]]=1;
        cnt++;
        s[cnt]=v[i];
        for(int j=v[1];j<=ma;j++)
        {
            if(f[j]==1)
            {
                f[j+v[i]]=1;
            }
        }
        }
    }
    cout<<cnt<<"\n";
    for(int i=1; i<=cnt; i++)
        cout<<s[i]<<" ";
    return 0;
}