Cod sursa(job #2515712)

Utilizator betybety bety bety Data 29 decembrie 2019 13:38:06
Problema Economie Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream in("economie.in");
ofstream out("economie.out");
unordered_map<int,int> m;
const int lim=1e3+3;
const int lim2=5e4+3;
int v[lim];
int f[lim];
int main()
{
    int n,maxx=-1;
    in>>n;
    for(int i=1;i<=n;++i)
    {
        in>>v[i];
        m[v[i]]=i;
        if(v[i]>maxx)
            maxx=v[i];
    }
    f[0]=1;
    int cnt=0;
    for(int i=1;i<=n;++i)
    if(v[i]!=-1)
    {
        ++cnt;
        for(int j=0;j<=maxx;++j)
        if(f[j]==1)
        {
            if(m[j]>0 and m[j]>=i+1)
                v[m[j]]=-1;
            if(j+v[i]<=maxx)
                f[j+v[i]]=1;
        }
    }
    out<<cnt<<endl;
    for(int i=1;i<=n;++i)
        if(v[i]!=-1)
        out<<v[i]<<endl;
    return 0;
}