Cod sursa(job #2406951)

Utilizator mjmilan11Mujdar Milan mjmilan11 Data 16 aprilie 2019 12:50:10
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 1005;
const int VMAX = 50005;

int a[NMAX],f[VMAX];
int rasp[NMAX];

int main()
{
    int n;
    fin >> n;
    int maxim=0;
    for(int i=1;i<=n;i++)
    {
        fin >> a[i];
        if(a[i]>maxim) maxim=a[i];
    }
    sort(a+1,a+n+1);
    int k=0;
    f[0]=1;
    for(int i=1;i<=n;i++)
    {
        if(f[a[i]]==0)
        {
            rasp[++k]=a[i];
            for(int j=0;j<=maxim-a[i];j++)
            {
                if(f[j]==1)
                    f[j+a[i]]=1;
            }
        }
    }
    fout << k << '\n';
    for(int i=1;i<=k;i++)
        fout << rasp[i] << ' ';
    return 0;
}