Pagini recente » Cod sursa (job #1408870) | Cod sursa (job #1538101) | Cod sursa (job #1507854) | Cod sursa (job #1523050) | Cod sursa (job #785327)
Cod sursa(job #785327)
#include <iostream>
#include <fstream>
using namespace std;
ifstream F("ghiozdan.in");
ofstream G("ghiozdan.out");
const int N = 202;
const int M = 75010;
int n, g, ap[N];
int v[M], t[M];
int main()
{
int i,q,k;
F >> n >> g;
for(i = 1; i<=n; ++i) {
F >> q;
ap[q]++;
}
v[0] = 1;
for (int i = 200; i; --i)
if( ap[i] )
for (int 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);
G << i << " " << v[i] - 1 << "\n";
for(; i!=0; i -= t[i])
G << t[i] << "\n";
return 0;
}