Cod sursa(job #3164344)
Utilizator | Nicu Robert Cristian Robert_Nicu | Data | 2 noiembrie 2023 20:32:24 |
---|---|---|---|
Problema | Economie | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
int n, v[1001];
bool rucsac[50001];
int i, j;
vector <int> ans;
int main(){
fin>>n;
for(i=1; i<=n; i++)
fin>>v[i];
sort(v+1, v+n+1);
for(i=1; i<=n; i++){
if(!rucsac[v[i]]){
ans.push_back(v[i]);
rucsac[v[i]]=1;
}
for(j=1; j+v[i]<=50000; j++)
if(rucsac[j])
rucsac[j+v[i]]=1;
}
fout<<ans.size()<<"\n";
for(i=0; i<ans.size(); i++)
fout<<ans[i]<<"\n";
}