Pagini recente » Cod sursa (job #1490299) | Cod sursa (job #3347314) | Cod sursa (job #3174441) | Cod sursa (job #1582912) | Cod sursa (job #3308713)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("economie.in");
ofstream fout ("economie.out");
int n, cnt;
int b[1001], dp[50005], a[1001];
int main(){
fin >> n;
for (int i = 1; i <= n; i++){
fin >> b[i];
}
sort(b + 1, b + n + 1);
for (int i = 1; i <= b[n]; i++){
dp[i] = 999999;
}
dp[0] = 0;
for (int i = 1; i <= n; i++){
if (dp[b[i]] == 999999){
cnt++;
a[cnt] = b[i];
for (int j = b[i]; j <= b[n]; j++){
if (dp[j - b[i]] != 999999){
dp[j] = min (dp[j], dp[j - b[i]] + 1);
}
}
}
}
fout << cnt << "\n";
for (int i = 1; i <= cnt; i++){
fout << a[i];
}
return 0;
}