Pagini recente » Cod sursa (job #3235308) | Cod sursa (job #2639778) | Cod sursa (job #2691965) | Cod sursa (job #3274863) | Cod sursa (job #3280810)
#include <bits/stdc++.h>
//#pragma GCC optimize("O3,unroll-loops")
//#pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt")
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
using dbl = double;
using ll = long long;
using ull = unsigned long long;
const int nmax = 1e5 + 1;
const int mod = 1e9 + 7;
int n;
vector<int> coins;
bool dp[nmax];
set<int> ans;
int main() {
fin >> n;
coins.resize(n);
for (auto& coin : coins) {
fin >> coin;
}
sort(coins.begin(),coins.end());
dp[0] = 1;
for (const auto coin : coins) {
if (!dp[coin]) {
ans.insert(coin);
}
for (int i = 0; i <= 50000; i++) {
if (dp[i] and i + coin <= 50000) {
dp[i + coin] = true;
}
}
}
fout << ans.size() << '\n';
for (auto coin : ans) {
fout << coin << ' ';
}
return 0;
}