Cod sursa(job #2987293)

Utilizator alexcmeciu1Cmeciu Alexandru Cristian alexcmeciu1 Data 2 martie 2023 10:25:57
Problema Economie Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
int n,v[1005],maxim,nr,posibil[100005];
set <int> res;
int main()
{
    fin>>n;
    for(int i=1;i<=n;i++){
        fin>>v[i];
        if(v[i]>maxim)maxim=v[i];
    }
    sort(v+1,v+n+1);
    posibil[0]=1;
    bool ok=true;
    for(int i=1;i<=n;i++){
        ok=true;
       for(int k=1;k<=n;k++)
        if(posibil[v[k]]==0)
            ok=false;
        if(ok==true)
            i=n;
       for(int j=0;j<=maxim;j++)
       {
           if(posibil[j]){
            posibil[j+v[i]]=1;
            res.insert(v[i]);
           }
       }
    }
    set<int>::iterator it;
    it=res.end();
    it--;
    res.erase(it);
    fout<<res.size()<<'\n';
    for(auto el:res)
        fout<<el<<endl;
    return 0;
}