提交时间:2024-05-18 16:19:54

运行 ID: 147569

#include<bits/stdc++.h> using namespace std; int n,w,c[105],f[105][10005]; int main(){ memset(f,0,sizeof(f)); f[0][0]=1; cin>>n; for(int i=1;i<=n;i++){ cin>>c[i]; w+=c[i]; } w>>=1; for(int i=1;i<=n;i++){ for(int j=n/2;j>=1;j--){ for(int k=w;k>=c[i];k--){ f[j][k]=f[j-1][k-c[i]] or f[j][k]; } } } for(int j=w;j>=0;j--){ if(f[n/2][j]){ cout<<j; return 0; } } }