这是降维了的代码
#include <bits/stdc++.h>
using namespace std ;
int f[100001] ;
//int f2[110][110] ;
int jdz ( int x ) {
return x >= 0 ? x : -x ;
}
int main ( )
{
// f[1][0] = 0 ;
memset ( f , 0 , sizeof ( f ) ) ;
int m = 0 ;
int sum = 0 ;
int n ;
cin >> n ;
int a[110] ;
for ( int i = 1 ; i <= n ; i ++ ) {
cin >> a[i] ;
m += a[i] ;
}
for ( int i = 1 ; i <= n ; i ++ ) {
for ( int j = m ; j >= 1 ; j -- ) {
f[j] = f[j] ;
if ( j == a[i] ) f[j] = 1 ;
else if ( f[j + a[i] ] ) f[j] = 1 ;
else if ( f[ jdz ( j - a[i] ) ] ) f[j] = 1 ;
}
}
int MAXX = 0 ;
for ( int i = 1 ; i <= m ; i ++ ) {
if ( f[i] ) MAXX ++ ;
}
cout << MAXX ;
return 0 ;
}