Pagini recente » Cod sursa (job #1554512) | Cod sursa (job #2018684) | Cod sursa (job #1383944) | Cod sursa (job #1501095) | Cod sursa (job #2193444)
#include <bits/stdc++.h>
using namespace std;
int n, g, a[210], dp[75005] = {1}, ap[75005];
int main(){
ifstream cin ("ghiozdan.in");
ofstream cout ("ghiozdan.out");
cin >> n >> g;
for (int i=1, x; i<=n; i++) cin >> x, a[x]++;
for (int i=200; i; i--){
if (!a[i]) continue;
for (int j=g; j>=0; j--){
if (dp[j]){
for (int d=1; d<=a[i] && j+d*i <= g && !dp[j + d*i]; d++)
dp[j+d*i] = dp[j] + d, ap[j+d*i] = i;
}
}
}
int j = g;
while (j && !dp[j]) j--;
cout << j << " " << dp[j]-1 << "\n";
while (j>0){
cout << ap[j] << "\n";
j -= ap[j];
}
return 0;
}