Pagini recente » Cod sursa (job #1285419) | Cod sursa (job #1735561) | Cod sursa (job #2253500) | Cod sursa (job #242485) | Cod sursa (job #2768263)
#include <fstream>
#include <algorithm>
using namespace std;
int dp[50001];
int n;
int a[1001];
void read() {
int i;
ifstream f("economie.in");
f >> n;
for (i = 1; i <= n; i++)
f >> a[i];
f.close();
}
int nr;
int sol[1001];
void solve() {
int i, j;
bool ok;
sort(a + 1, a + n + 1);
dp[0] = 1;
for (i = 1; i <= n; i++) {
if (!dp[a[i]]) {
ok = 1;
for (j = 1; j <= 50000; j++) {
if (j - a[i] >= 0)
dp[j] = dp[j] | dp[j - a[i]];
ok = ok & dp[j];
}
sol[++nr] = a[i];
if (ok) break;
}
}
}
void output() {
int i;
ofstream g("economie.out");
g << nr << '\n';
for (i = 1; i <= nr; i++)
g << sol[i] << '\n';
g.close();
}
int main() {
read();
solve();
output();
return 0;
}