比赛 2026.9.12 评测结果 AAAAAAAAAA
题目名称 分饼干 最终得分 100
用户昵称 赵飞羽 运行时间 1.190 s
代码语言 C++ 内存使用 118.14 MiB
提交时间 2026-09-12 08:56:14
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;

constexpr int N = 60, M = 500010, INF = 1e9;
int n, m, a[N], f[N][M];

signed 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];
		m += a[i];
	}
	for (int i = 0; i < N; i++) for (int j = 0; j < M; j++) f[i][j] = -INF;
	f[0][0] = 0;
	for (int i = 1; i <= n; i++) {
		for (int j = m; j >= 0; j--) {
			f[i][j] = max(f[i][j], max(f[i-1][j], f[i-1][j+a[i]]));
			if (a[i] <= j) f[i][j] = max(f[i][j], f[i-1][j-a[i]] + a[i]);
			else f[i][j] = max(f[i][j], f[i-1][a[i]-j] + j);
		}
	}
	cout << f[n][0];
	return 0;
}