uva 624 CD
#include<stdio.h>
#include<string.h>
int main()
{
int n,t,dp[10005],c[25][10005],v[10005],i,j;
while(~scanf("%d%d",&n,&t))
{
for(i=0;i<t;i++) scanf("%d",&v[i]);
memset(dp,0,sizeof(dp));
memset(c,0,sizeof(c));
for(i=0;i<t;i++)
{
for(j=n;j>=v[i];j--)
{
if(dp[j]<dp[j-v[i]]+v[i]) {dp[j]=dp[j-v[i]]+v[i];c[i][j]=1;}
}
}
j=n;
for(i=t-1;i>=0;i--)
{
if(c[i][j]) {printf("%d ",v[i]);j-=v[i];}
}
printf("sum:%d\n",dp[n]);
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/