#include #include using namespace std; const int N = 20, V = 40; int n, a[N], dp[N + 1][V + 1]; int main() { scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d", &a[i]); memset(dp, 0, sizeof(dp)); // dp[i][j] = dp[i - 1][j - a[i]] + dp[i - 1][j] dp[0][0] = 1; for (int i = 1; i <= n; i++) { dp[i][0] = 1; for (int j = 1; j <= V; j++) { if (a[i - 1] <= j) dp[i][j] = dp[i - 1][j - a[i - 1]] + dp[i - 1][j]; else dp[i][j] = dp[i - 1][j]; } } printf("%d\n", dp[n][V]); return 0; }