比赛 2026.9.12 评测结果 AAAAAAAAAA
题目名称 分饼干 最终得分 100
用户昵称 Lixj 运行时间 0.666 s
代码语言 C++ 内存使用 8.89 MiB
提交时间 2026-09-12 12:18:24
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int S;
int main(){
	freopen("cookie.in","r",stdin);
	freopen("cookie.out","w",stdout);
    	ios::sync_with_stdio(false);
    	cin.tie(nullptr);
    	int n;
    	cin>>n;
    	vector<int>a(n);
    	for(int i=0;i<n;i++){
        	cin>>a[i];
       	 S+=a[i];
    	}
    	int of=S;
    	vector<int>dp(2*S+1,-1);
    	dp[of]=0;
    	for(int x:a){
       	    vector<int>p=dp;
       	 	for(int i=0;i<=2*S;i++){
            	if(dp[i]<0)continue;
            	int j=i+x;
            	if(j<=2*S)
				p[j]=max(p[j],dp[i]+x);
           	 	j=i-x;
            	if(j>=0)
				p[j]=max(p[j],dp[i]);
        	}
        	dp.swap(p);
    	}
    	cout<<dp[of]<<endl;
    	return 0;
}