| 比赛 |
2026.9.12 |
评测结果 |
AAAATTTTTT |
| 题目名称 |
分饼干 |
最终得分 |
40 |
| 用户昵称 |
杨蕙宇 |
运行时间 |
7.365 s |
| 代码语言 |
C++ |
内存使用 |
3.51 MiB |
| 提交时间 |
2026-09-12 11:22:06 |
显示代码纯文本
/*
n个元素,权值为a[],从中选出两个集合,使得集合中元素的和相等
求出元素和最大值
*/
#include<bits/stdc++.h>
using namespace std;
const int N=60;
const int M=5e5+10;
int n,s[N];
int mk[M];
int ans;
void dfs(int x,int a,int b,int c){
if(x>n){
if(a==b){
ans=max(ans,a);
}
if(b==c){
ans=max(ans,b);
}
if(a==c){
ans=max(ans,c);
}
return;
}
for(int i=0;i<3;i++){
if(i==0)dfs(x+1,a+s[x],b,c);
if(i==1)dfs(x+1,a,b+s[x],c);
if(i==2)dfs(x+1,a,b,c+s[x]);
}
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
freopen("cookie.in","r",stdin);
freopen("cookie.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++)cin>>s[i];
dfs(1,0,0,0);
cout<<ans;
return 0;
}