Pagini recente » Cod sursa (job #844590) | Cod sursa (job #139531) | Cod sursa (job #766612) | Cod sursa (job #1366057) | Cod sursa (job #18129)
Cod sursa(job #18129)
#include<stdio.h>
#define fin "ghiozdan.in"
#define fout "ghiozdan.out"
#define Smax 75001
int N,G,viz[Smax],min[Smax],fat[Smax],sol;
int main() {
int i,j,a;
freopen(fin,"r",stdin); freopen(fout,"w",stdout);
scanf("%i%i",&N,&G);
viz[0]=1;
for (i=1;i<=N;++i) {
scanf("%i",&a);
for (j=G;j>=0;--j)
if (viz[j] && j+a<=G && (min[j+a]>min[j]+1 || !viz[j+a])) {
viz[j+a]=1;
min[j+a]=min[j]+1;
fat[j+a]=a;
}
}
//for (j=1;j<=G;++j) fprintf(stderr,"%i %i\n",min[j],fat[j]);
for (j=G;viz[j]==0;--j);
printf("%i %i\n",j,min[j]);
while (j!=0) {
printf("%i\n",fat[j]);
j-=fat[j];
}
fclose(stdin); fclose(stdout);
return 0;
}