Pagini recente » Cod sursa (job #2268389) | Cod sursa (job #2200585) | Cod sursa (job #811730) | Cod sursa (job #2915591) | Cod sursa (job #748571)
Cod sursa(job #748571)
#include<iostream>
#include<fstream>
using namespace std;
ifstream in("ghiozdan.in");
ofstream out("ghiozdan.out");
const int N = 202;
const int M = 75010;
int n, g, ap[N], v[M], t[M];
int main() {
int i,q,k,j;
in >> n >> g;
for(i = 1; i<=n; ++i) {
in >> q;
ap[q]++;
}
v[0] = 1;
for(i = 200; i; --i) if(ap[i])
for(j = g - i; j>=0; --j) if(v[j])
for(k = 1; k<=ap[i] && !v[j + k * i] && j + k*i <= g; ++k) {
v[j + k*i] = v[j] + k;
t[j + k*i] = i;
}
for(i = g; !v[i]; --i);
out << i << " " << v[i] - 1 << "\n";
for(; i!=0; i -= t[i])
out << t[i] << "\n";
return 0;
}