Pagini recente » Cod sursa (job #2899919) | Cod sursa (job #978385) | Cod sursa (job #3136030) | Cod sursa (job #2819571) | Cod sursa (job #2112854)
#include <bits/stdc++.h>
using namespace std;
ifstream in("economie.in");
ofstream out("economie.out");
int n, a[1010], cnt, vf, sol[1010];
bool mark[50100], viz[50100];
int main(){
in >> n;
for(int i = 1; i <= n; i++){
in >> a[i];
if(!mark[a[i]]){
mark[a[i]] = 1;
cnt++;
}
}
sort(a + 1, a + n + 1);
for(int i = 1; i <= n && cnt; i++){
if(a[i] == a[i - 1] || viz[a[i]])
continue;
viz[a[i]] = 1;
if(mark[a[i]]){
mark[a[i]] = 0;
cnt--;
viz[a[i]] = 1;
}
for(int j = 1; j <= 50000 - a[i]; j++)
if(viz[j]){
viz[j + a[i]] = 1;
if(mark[j + a[i]]){
mark[j + a[i]] = 0;
cnt--;
}
}
sol[++vf] = a[i];
}
out << vf << '\n';
for(int i = 1; i <= vf; i++)
out << sol[i] << '\n';
return 0;
}