#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define N 30
using namespace std;
int V, n, a[N], ans_sum, an, ans[N], b[N];
void dfs( int u, int sum, int tn )
{
if( sum > ans_sum )
{
an = tn;
for( int i = 0; i < tn; i ++ )
ans[i] = b[i];
ans_sum = sum;
}
if( u == n ) return ;
if( sum+a[u] <= V )
{
b[tn] = a[u];
dfs(u+1,sum+a[u], tn+1);
}
dfs(u+1,sum, tn);
}
int main()
{
while( scanf("%d%d",&V,&n) !=EOF )
{
for( int i = 0; i < n; i ++ )
{
scanf("%d",&a[i]);
}
a[n] = V+1;
ans_sum = -1;
dfs(0,0,0);
for( int i = 0; i < an; i ++ )
printf("%d ",ans[i]);
printf("sum:%d\n",ans_sum);
}
return 0;
}
uva 624
最新推荐文章于 2019-04-29 13:34:38 发布