完全背包,与上题相同
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast,no-stack-protector")
#include <bits/stdc++.h>
#define int long long
const int N = 3010 ;
int f[N] ;
int n , m , a[20] ;
signed main()
{
std::ios::sync_with_stdio(false) ;
std::cin.tie(nullptr) ;
#ifdef LOCAL
freopen("D:\\Codes\\in.txt" , "r" , stdin) ;
freopen("D:\\Codes\\out.txt" , "w" , stdout) ;
#endif
std::cin >> n >> m ;
for(int i = 1 ; i <= n ; ++ i)
std::cin >> a[i] ;
f[0] = 1 ;
for(int i = 1 ; i <= n ; ++ i)
for(int j = a[i] ; j <= m ; ++ j)
f[j] += f[j - a[i]] ;
std::cout << f[m] << '\n' ;
return 0 ;
}