Cod sursa(job #3295877)

Utilizator LucaMirsolea14Luca Mirsolea LucaMirsolea14 Data 9 mai 2025 11:48:42
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");

int n,v[1002], maxi;
vector<int> sub;
bitset<500001> fr;

void Completeaza(int x){
int i;
for(i=1;i<=maxi-x;i++)
    if(fr[i])
        fr[i+x]=1;
}

void Solve(){
int i;
for(i=1;i<=n;i++){
    if(fr[v[i]] == 0){
        sub.push_back(v[i]);
        fr[v[i]]=1;
        Completeaza(v[i]);
    }

}
//for(i=1;i<=maxi;i++)
//    fout<<fr[i]<<" ";
//fout<<endl;

fout<<sub.size()<<'\n';
for(auto e : sub)
    fout<<e<< " ";
}

int main(){

    int i;
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>v[i];
        maxi=max(maxi,v[i]);
    }
    sort(v+1,v+n+1);

    Solve();

}