Pagini recente » Cod sursa (job #101250) | Cod sursa (job #31493)
Cod sursa(job #31493)
#include<stdio.h>
int g[75001],s[75001],n,G,gmax,a[20001],i,j;
int main()
{freopen("ghiozdan.in","r",stdin);
freopen("ghiozdan.out","w",stdout);
scanf("%d %d",&n,&G);
for(i=1;i<=n;i++)
{scanf("%d",&a[i]);
for(j=gmax;j>=0;j--)
if(j+a[i]<=G&&(g[j]||j==0)&&(!g[j+a[i]]||g[j+a[i]]>g[j]+1)) {g[j+a[i]]=g[j]+1;s[j+a[i]]=a[i];if(j+a[i]>gmax){gmax=j+a[i];}}}
printf("%d %d\n",gmax,g[gmax]);
if(gmax<40000)
while(gmax){printf("%d\n",s[gmax]);gmax=gmax-s[gmax];}
fclose(stdout);
return 0;}