Pagini recente » Cod sursa (job #412167) | Cod sursa (job #2123260) | Cod sursa (job #1067116) | Cod sursa (job #2350106) | Cod sursa (job #31482)
Cod sursa(job #31482)
#include<stdio.h>
int g[75001],s[75001],n,G,gmax,a,i,j;
void sol(int G)
{if(G==0) return;
sol(G-s[G]);
printf("%d\n",s[G]);
}
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);
for(j=gmax;j>=0;j--)
if(j+a<=G&&(g[j]||j==0)&&(!g[j+a]||g[j+a]>g[j]+1))
{g[j+a]=g[j]+1;
s[j+a]=a;
if(j+a>gmax) gmax=j+a;
}
}
printf("%d %d\n",gmax,g[gmax]);
sol(gmax);
fclose(stdout);
return 0;}