Pagini recente » Cod sursa (job #2828725) | Cod sursa (job #2894860) | Cod sursa (job #564738) | Cod sursa (job #1568571) | Cod sursa (job #1898351)
#include <fstream>
#include <algorithm>
#include <vector>
#define NMAX 50005
using namespace std;
ifstream in("economie.in");
ofstream out("economie.out");
int N, contor;
int v[NMAX];
int S[NMAX * 1000];
int maxi, mini;
vector <int> sol;
void Read(){
in >> N;
for(int i = 1; i <= N; ++i)
in >> v[i];
}
void Solve(){
sort(v + 1, v + N + 1);
maxi = v[N];
mini = v[1];
for(int i = 1; i <= N; ++i){
if(!S[v[i]]){
sol.push_back(i);
for(int j = mini; j <= maxi - v[i]; ++j){
if(S[j])
S[j + v[i]] = 1;
else if(j % v[i] == 0 && j >= v[i])
S[j] = 1;
}
}
}
}
void Print(){
int sz = sol.size();
out << sz << "\n";
for(int i = 0; i < sz; ++i)
out << v[sol[i]] << " ";
out << "\n";
}
int main()
{
Read();
Solve();
Print();
return 0;
}