Pagini recente » Cod sursa (job #376385) | Cod sursa (job #2193690) | Cod sursa (job #2400985) | Cod sursa (job #720282) | Cod sursa (job #1840429)
#include <iostream>
#include <fstream>
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]);
}
}
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] <= vMax; ++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;
}