Pagini recente » Cod sursa (job #249913) | Cod sursa (job #2092692) | Cod sursa (job #734248) | Cod sursa (job #1720989) | Cod sursa (job #788672)
Cod sursa(job #788672)
#include <cstdio>
#include <cstdlib>
#include <cmath>
using namespace std;
int ap[210], A[80000], B[80000], N, G, X, start = -1;
int main()
{
freopen("ghiozdan.in", "r", stdin);
freopen("ghiozdan.out", "w", stdout);
int i, j, k;
scanf("%i %i", &N, &G);
for(i = 1; i <= N; i++)
{
scanf("%i", &X);
ap[X] ++;
}
B[0] = 1;
for(i = 209; i; i--)
for(j = G - i; j >= 0; j--)
if(ap[i] && B[j])
{
for(k = i; k <= ap[i] * i && j + k <= G; k += i)
if(B[j + k] == 0)
{
A[j + k] = i;
B[j + k] = B[j] + k / i;
}else
{
break;
}
}
for(i = G; i >= 0 && start == -1; i--)
if(B[i] > 0)
start = i;
printf("%i %i\n", start, B[start] - 1);
while(start != 0)
{
printf("%i\n", A[start]);
start -= A[start];
}
return 0;
}