为什么我输出永远是0!!
#include<bits/stdc++.h>
using namespace std;
int n,m=0,a[105],f[105][3],ans=0;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
m+=a[i];
}
for(int i=1;i<=n;i++)
{
for(int j=m/2;j>=a[i];j--)
{
if(f[j-a[i]][1]+a[i]>=f[j][1])
{
if(f[j-a[i]][2]+1<=n/2)
{
f[j][1]=f[j-a[i]][1]+a[i];
f[j][1]=f[j-a[i]][2]+1;
}
}
}
}
for(int i=1;i<=m/2;i++)
{
if(f[i][2]==n/2) ans=max(ans,f[i][1]);
}
cout<<ans<<endl;
return 0;
}