#include <iostream> using namespace std; const int N = 505; int n, k, ans; int c[N], dp[N][N], s[N]; int main() { cin >> n >> k; for (int i = 1; i <= n; i++) cin >> c[i]; dp[0][0] = 1; for (int i = 1; i <= n; i++) { for (int j = k; j >= c[i]; j--) { for (int l = k; l >= 0; l--) { if (l >= c[i]) dp[j][l] |= dp[j - c[i]][l - c[i]]; dp[j][l] |= dp[j-c[i]][l]; } } } for (int i = 0; i <= k; i++) if (dp[k][i]) s[++ans] = i; cout << ans << '\n'; for (int i = 1; i <= ans; i++) cout << s[i] << " "; return 0; } 歡迎關注