ans

x-wangziji 2022-05-04 11:40:11 20 返回题目

#include <bits/stdc++.h>
using namespace std;
int maxn=0,n,c,w[50];
void dfs(int k, int s) {
    if (s==c) {
        maxn=c;
        return;
    }
    if (s>maxn)maxn = s;
    if (k>n)return;
    if (s+w[k]<=c)dfs(k + 1, s + w[k]);
    dfs(k+1,s);
}
int main() {
    cin>>n>>c;
    for (int i=1; i<=n; ++i) cin >> w[i];
    dfs(1,0);
    cout << maxn;
    return 0;
}
{{ vote && vote.total.up }}