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