比赛 2026.9.12 评测结果 AAAATTTTTT
题目名称 分饼干 最终得分 40
用户昵称 彭欣越 运行时间 7.675 s
代码语言 C++ 内存使用 3.50 MiB
提交时间 2026-09-12 11:57:50
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=55,M=5e5+10;
int n,a[N],mk[N],ans;
void dfs2 (int idx,int sum,int res) {
    if (sum>res) return;
    if (idx>n) {
        if (sum==res) ans=max(ans,res);
        return; 
    }
    if (!mk[idx]) dfs2(idx+1,sum+a[idx],res);
    dfs2(idx+1,sum,res); 
}
void dfs1 (int idx,int sum) {
    if (idx>n) return;
    dfs2(1,0,sum);
    mk[idx]=1;
    dfs1(idx+1,sum+a[idx]);
    mk[idx]=0;
    dfs1(idx+1,sum); 
}

int main () {
    freopen("cookie.in","r",stdin);
    freopen("cookie.out","w",stdout);
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    cin >> n;
    for (int i=1;i<=n;i++) {
        cin >> a[i]; 
    }
    dfs1(1,0);
    cout << ans <<"\n";
    return 0;
}