Pagini recente » Cod sursa (job #1892704) | Cod sursa (job #3226577) | Cod sursa (job #1521404) | Cod sursa (job #1407803) | Cod sursa (job #3164243)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
const int DIM = 1010;
const int MAX = 50010;
int n, maxCoin, solCnt;
int v[DIM];
bool dp[MAX], inArr[MAX], isSol[DIM];
int main() {
fin >> n;
for (int i = 1; i <= n; i++) {
fin >> v[i];
inArr[v[i]] = true;
maxCoin = max(maxCoin, v[i]);
}
sort(v + 1, v + n + 1);
dp[0] = true;
for (int i = 1; i <= n; i++) {
for (int j = v[i]; j <= maxCoin; j++) {
if (dp[j - v[i]]) {
if (!dp[j] && inArr[j] && !isSol[i]) {
solCnt++;
isSol[i] = true;
}
dp[j] = true;
}
}
}
fout << solCnt << '\n';
for (int i = 1; i <= n; i++) {
if (isSol[i])
fout << v[i] << '\n';
}
return 0;
}