func_code_string: #include <bits/stdc++.h>   const int MOD = 1e9 + 7;   inline int addmod(int a, int b) { return (a + b) % MOD; }   const int MAXN = 105;   const int MAXM = 10005;   int cnt[MAXN];   int n, a[MAXN];   int f[MAXN][MAXM];   int com[MAXN][MAXN];   int main() {     for (int i = 0; i < MAXN; i++) {       com[i][0] = 1;       for (int j = 1; j <= i; j++) {         com[i][j] = addmod(com[i - 1][j], com[i - 1][j - 1]);       }     }     scanf( %d , &n);     f[0][0] = 1;     for (int i = 0; i < n; i++) {       scanf( %d , &a[i]);       cnt[a[i]]++;       for (int x = 100; x >= 1; x--) {         for (int y = a[i]; y <= 10000; y++)           f[x][y] = addmod(f[x][y], f[x - 1][y - a[i]]);       }     }     int tot = 0;     for (int i = 0; i < MAXN; i++)       if (cnt[i] > 0) tot++;     int ans = 0;     for (int i = 0; i <= 100; i++) {       int sum = 0;       for (int j = 1; j <= cnt[i]; j++) {         sum += i;         if (f[j][sum] == com[cnt[i]][j]) {           ans = std::max(ans, j);           if (j == cnt[i] && tot == 2) ans = n;         }       }     }     printf( %d n , ans);     return 0;   }   