Pagini recente » Cod sursa (job #1596302) | Cod sursa (job #2904299) | Cod sursa (job #2703560) | Cod sursa (job #152741) | Cod sursa (job #1840435)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("economie.in");
ofstream out("economie.out");
const int nMax = 1005;
const int vMax = 50005;
int n;
int v[nMax];
bool viz[vMax];
int sol[nMax];
int rasp;
int mx;
void citire()
{
in >> n;
for(int i = 1; i <= n; ++i)
{
in >> v[i];
mx = max(mx, v[i]);
}
sort(v + 1, v + n + 1);
}
void rezolvare()
{
viz[0] = true;
for(int i = 1; i <= n; ++i)
{
if(viz[v[i]] == false)
sol[++rasp] = v[i];
for(int j = 0; j + v[i] <= mx; ++j)
if(viz[j] == true)
viz[j + v[i]] = true;
}
}
void afisare()
{
out << rasp << "\n";
for(int i = 1; i <= rasp; ++i)
out << sol[i] << "\n";
}
int main()
{
citire();
rezolvare();
afisare();
return 0;
}