Cod sursa(job #3259096)

Utilizator vladsoartavlad sofronea vladsoarta Data 25 noiembrie 2024 10:22:41
Problema Economie Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <bitset>
#include <vector>
#include <algorithm>
using namespace std;
ifstream cin("economie.in");
ofstream cout("economie.out");

vector<int>elemselectate;
short v[1001],n;
bitset<100001>frecv;

int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>v[i];
    sort(v+1,v+n+1);
    elemselectate.push_back(v[1]);
    frecv[0]=1;
    for(int i=2;i<=n;i++)
    {
        if(!frecv[v[i]])
        {
            for(int j=v[i-1];j<=v[i];j++)
            {
                for(auto elem:elemselectate){
                    frecv[j] = max(frecv[j],frecv[j-elem]);
                }
            }
            if(!frecv[v[i]])
                elemselectate.push_back(v[i]);
        }
    }

    cout<<elemselectate.size()<<'\n';
    for(int i=0;i<elemselectate.size();i++)
        cout<<elemselectate[i]<<'\n';
    return 0;
}