Pagini recente » Cod sursa (job #1770668) | Cod sursa (job #100449) | Cod sursa (job #2087426) | Cod sursa (job #590962) | Cod sursa (job #475175)
Cod sursa(job #475175)
#include <fstream>
#include <algorithm>
using namespace std;
void Read();
void Solve();
void Write();
int n, mins;
int a[1001];
char v[50001];
int main()
{
Read();
Solve();
Write();
}
void Read()
{
ifstream fin("economie.in");
fin >> n;
for (int i = 1; i <= n; ++i)
{
fin >> a[i];
v[a[i]] = 1;
}
fin.close();
}
void Solve()
{
sort(a + 1, a + n + 1);
for (int i = 1; i <= n; ++i)
if (v[a[i]] == 1)
{
++mins;
v[a[i]] = 2;
for (int j = a[i]; j <= 50000 - a[i]; ++j)
v[j + a[i]] |= v[j];
bool ok = true;
for (int j = i + 1; j <= n; ++j)
ok &= (v[a[j]] == 1);
if (ok == true) break;
}
}
void Write()
{
ofstream fout("economie.out");
fout << mins << '\n';
for (int i = 1; i <= n; ++i)
if (v[a[i]] == 2)
fout << a[i] << '\n';
fout.close();
}