提交时间:2024-05-20 13:22:54

运行 ID: 147882

#include<bits/stdc++.h> using namespace std; int n,a[105],dp[1000005],nsum=0; int main(){ cin>>n; memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++){ cin>>a[i]; nsum+=a[i]; dp[a[i]]=1; } dp[0]=1; for(int i=1;i<=n;i++){ for(int j=nsum;j>=0;j--){ if(dp[j-a[i]]) dp[j]=1; } } for(int i=ceil(nsum/2);i>=0;i--){ if(dp[i]==1&&i*2<nsum){ cout<<i; break; } } return 0; }