Pagini recente » Cod sursa (job #115897) | Cod sursa (job #3160265) | Cod sursa (job #397794) | Cod sursa (job #1156485) | Cod sursa (job #785396)
Cod sursa(job #785396)
#include <fstream>
#define GM 210
#define NG 75010
using namespace std;
ifstream f("ghiozdan.in");
ofstream g("ghiozdan.out");
int i,j,N,G,k;
int F[GM];
int D[NG],C[NG];
int ANS;
int main ()
{
f >> N >> G;
for (i=1; i<=N; i++)
{
f >> j;
F[j]++;
}
D[0]=1;
for (i=GM-1; i>=1; i--)
if (F[i]>0)
{
for (j=G-i; j>=0; j--)
if (D[j]>0)
{
for (k=1; k<=F[i] && j+k*i<=G && D[j+k*i]==0; k++)
{
D[j+k*i]=D[j]+k;
C[j+k*i]=i;
}
}
}
for (i=G; i>=0; i--)
if (D[i]>0)
{
ANS=i;
break;
}
g << ANS << ' ' << D[ANS]-1 << '\n';
for (; ANS!=0; ANS-=C[ANS])
g << C[ANS] << '\n';
f.close();
g.close();
return 0;
}