| 比赛 |
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;
}