P2663 RE求调(悬关)
查看原帖
P2663 RE求调(悬关)
753646
LCX_201109091514楼主2024/7/15 09:30
#include<bits/stdc++.h>
using namespace std;
int n,s,ans = -2147483648;
int a[101];
int f[101][10001];
int dfs(int sum,int r,int x){
	if (f[x][sum] != 0)return f[x][sum];
	if (x > n + 1){
		return 0;
	}
	if (sum <= s/2 && r == n/2){
		ans = max(ans,sum);
		f[x][sum] = ans;
	}
	f[x+1][sum+a[x]] = dfs(sum+a[x],r+1,x+1);
	f[x+1][sum] = dfs(sum,r,x+1);
}
int main(){
	cin>>n;
	for (int i = 1;i <= n;i++){
		cin>>a[i];
		s += a[i];
	}
	dfs(0,0,1);
	cout<<ans;
}
2024/7/15 09:30
加载中...