Pagini recente » Cod sursa (job #1103421) | Cod sursa (job #344463) | Cod sursa (job #2748687) | Cod sursa (job #697578) | Cod sursa (job #689776)
Cod sursa(job #689776)
#include <fstream>
#include <string>
#include <sstream>
using namespace std;
ifstream f("ghiozdan.in");
ofstream g("ghiozdan.out");
#define NMAX 20010
#define GMAX 75010
int A[200];
int Elem[GMAX];
int Nr[GMAX];
int N, G;
int main()
{
int i, j, k, x;
f >> N >> G;
for (i=1; i<=N; i++) f >> x, A[x]++;
Elem[0] = 1;
for (i=200; i>0; i--){
if (A[i]){
for (j=G-i; j>=0; j--){
if (Elem[j]){
for (k=1; k<=A[i] && j+k*i<=G && !Elem[j+k*i]; k++){
Elem[j+k*i] = i;
Nr[j+k*i] = Nr[j] + k;
}
}
}
}
}
for (i=G; !Elem[i]; i--);
g << i << ' ' << Nr[i] << '\n';
for (; i; i-=Elem[i]) g << Elem[i] << '\n' ;
}