Pagini recente » Cod sursa (job #2197094) | Cod sursa (job #3160609) | Cod sursa (job #769795) | Cod sursa (job #75540) | Cod sursa (job #805908)
Cod sursa(job #805908)
#include <fstream>
#include <algorithm>
using namespace std;
int n, a[1010], sol[1010], nsol;
bool pos[50010];
inline void Read()
{
ifstream f("economie.in");
f>>n;
int i;
for(i=1; i<=n; i++)
f>>a[i];
f.close();
}
inline void Solve()
{
sort(a+1, a+n+1);
int i, j, maxim;
maxim = a[n];
for(i=1; i<=n; i++)
{
if (!pos[a[i]])
{
sol[++nsol] = a[i];
pos[a[i]] = true;
for(j=1; j+a[i] <= maxim; j++)
if(pos[j] == true)
pos[j+a[i]] = true;
}
}
}
inline void Write()
{
ofstream g("economie.out");
g<<nsol<<"\n";
for(int i = 1; i<=nsol; i++)
g<<sol[i]<<"\n";
g.close();
}
int main()
{
Read();
Solve();
Write();
return 0;
}