Pagini recente » Cod sursa (job #1922424) | Cod sursa (job #2199409) | Cod sursa (job #1734136) | Cod sursa (job #1803139) | Cod sursa (job #2185205)
#include <fstream>
#include <algorithm>
#define NMAX 75007
using namespace std;
ifstream in("ghiozdan.in");
ofstream out("ghiozdan.out");
int Ap[NMAX], a[NMAX], b[NMAX];
int G, n, x;
int main (){
in >> n >> G;
for(int i = 1; i <= n; ++i){
in >> x;
Ap[x]++;
}
a[0] = 1;
int Max = 0;
for(int i = 200; i >= 1 ; i--)
if(Ap[i])
for(int j = G - i ; j >= 0 ; j--)
if(a[j])
for(int k = 1; k <= Ap[i] && j + k*i <= G && !a[j + k*i]; ++k){
a[j + k * i] = a[j] + k;
b[j + k * i] = i;
Max = max(Max, j + k * i);
}
out << Max << " " << a[Max] - 1 << "\n";
for(int i = Max ; i > 0 ; i -= b[i])
out << b[i] << "\n";
return 0;
}