超级书架2

 

#include<bits/stdc++.h>
using namespace std;
const int maxn=1010;
int h[maxn];
int n,m,ans;
void dfs(int v,int sum)
{
    if(v==n||sum>=m)
    {
        if(sum>=m)
        {
            ans=min(ans,sum-m);
        }
        return;
    }
    dfs(v+1,sum+h[v]);
    dfs(v+1,sum);
}
int main()
{
    cin>>n>>m;
    for(int i=0; i<n; i++)
    {
        cin>>h[i];
        ans+=h[i];
    }
    ans=ans-m;
    dfs(0,0);
    printf("%d\n",ans);
    return 0;
}
发布了1317 篇原创文章 · 获赞 329 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/chen_zan_yu_/article/details/105702939