Pagini recente » Cod sursa (job #352493) | Cod sursa (job #396066) | Cod sursa (job #2277460) | Cod sursa (job #2163087) | Cod sursa (job #1898360)
#include <fstream>
#include <algorithm>
#include <vector>
#define NMAX 1003
using namespace std;
ifstream in("economie.in");
ofstream out("economie.out");
int N, contor;
int v[NMAX];
int S[50005];
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);
S[v[i]] = 1;
for(int j = mini; j <= maxi - v[i]; ++j){
if(S[j] && j + v[i] <= maxi)
S[j + v[i]] = 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;
}