提交时间:2024-05-22 13:12:13

运行 ID: 148139

#include<bits/stdc++.h> using namespace std; const int N=19768; int t,v,n,a[N],b[N],c[N],dp[1007][N],w; int main() { cin>>n; dp[0][0]=1; for(int i=1;i<=n;i++) { cin>>c[i]; w+=c[i]; } w=w/2; for(int i=1;i<=n;i++) { for(int j=n/2;j>=1;j--) { for(int k=w;k>=c[i];k--) { dp[j][k]=dp[j-1][k-c[i]] or dp[j][k]; } } } for(int j=w;j>=0;j--) { if(dp[n/2][j]==1) { cout<<j; return 0; } } }