B
来源:互联网 发布:王宝强 马蓉 知乎 编辑:程序博客网 时间:2024/06/03 01:56
#include <bits/stdc++.h>using namespace std;const int maxn=101;const int maxnSum=10005;bool dp[maxn][maxnSum];int A[maxn];int main(){ int n,sum; while(scanf("%d",&n)!=EOF){ sum=0; for(int i=1;i<=n*2;i++){ scanf("%d",&A[i]); sum+=A[i]; } memset(dp,0,sizeof(dp)); dp[0][0]=true; for(int i=1;i<=n*2;i++){ for(int j=min(i,n);j>=1;j--){ for(int s=1; s<=sum/2;s++){ if(s>=A[i] && dp[j-1][s-A[i]]){ dp[j][s]=true; } } } } for(int s=sum/2;s>=1;--s){ if(dp[n][s]){ printf("%d\n",s); break; } } } return 0;}
0 0