Cod sursa(job #2395772)

Utilizator qThunderStefan Durlanescu qThunder Data 2 aprilie 2019 20:54:41
Problema Economie Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
int n,x,maxim,k,minim,i1,i,g1,g,s;
int d[50004],v[1004];
int main()
{
    fin>>n;
    for(int i=1;i<=n;i++)
    {
        fin>>v[i];
        maxim=max(v[i],maxim);
    }
    for(int i=1;i<=maxim;i++)
        d[i]=50001;
    for(int i=1;i<=n;i++)
    {
        for(int j=maxim;j>=0;j--)
            if(v[i]+j<=maxim)
            {
                d[j+v[i]]=min(d[j+v[i]],v[i]);
            }
    }
    for(int i=1;i<=n;i++)
        if(d[v[i]]!=d[v[i+1]])
            s++;
    fout<<s<<"\n";
    for(int i=1;i<=n;i++)
        if(d[v[i]]!=d[v[i+1]])
            fout<<d[v[i]]<<"\n";
    return 0;
}