Pagini recente » Cod sursa (job #226177) | Cod sursa (job #2181903) | Cod sursa (job #2621434) | Cod sursa (job #2170067) | Cod sursa (job #3164637)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
const int ELMAX = 50007;
int main()
{
int n;
fin >> n;
vector<int> v(n + 1);
vector<bool> frecv(ELMAX);
int maxim = 0;
for (int i = 1; i <= n; i++)
{
fin >> v[i];
frecv[v[i]] = true;
maxim = max(maxim, v[i]);
}
sort(v.begin(), v.end());
int ans = 0;
vector<bool> esol(n + 1), dp(ELMAX);
dp[0] = true;
for (int i = 1; i <= n; i++)
{
for (int j = v[i]; j <= maxim; j++)
{
if (dp[j - v[i]])
{
if (!dp[j] && frecv[j] && !esol[i])
{
ans++;
esol[i] = true;
}
dp[j] = true;
}
}
}
fout << ans << '\n';
for (int i = 1; i <= n; i++)
{
if (esol[i])
fout << v[i] << '\n';
}
return 0;
}