Pagini recente » Cod sursa (job #2625381) | Cod sursa (job #2192703) | Cod sursa (job #2650992) | Cod sursa (job #1003306) | Cod sursa (job #2112710)
#include <bits/stdc++.h>
using namespace std;
ifstream in("economie.in");
ofstream out("economie.out");
int n, a[1010], p, v, cnt;
bool viz[50100], f, mark[50100], sol[50100];
int main(){
in >> n;
cnt = n;
for(int i = 1; i <= n; i++){
in >> a[i];
if(!mark[a[i]])
mark[a[i]] = 1;
else
cnt--;
}
sort(a + 1, a + n + 1);
for(int i = 1; i <= n && cnt > 0; i++){
p++;
for(int j = 50000 - a[i]; j >= 1; j--)
if(viz[j])
if(mark[j + a[i]]){
viz[j + a[i]] = 1;
mark[j + a[i]] = 0;
cnt--;
}
for(int v = a[i]; v <= 50000; v += a[i]){
viz[v] = 1;
if(mark[v]){
mark[v] = 0;
cnt--;
}
}
}
for(int i = 1; i <= p; i++){
if(!sol[a[i]]){
sol[a[i]] = 1;
} else cnt++;
}
p -= cnt;
out << p << '\n';
for(int i = 1; i <= 50000; i++)
if(sol[i])
out << i << '\n';
return 0;
}