Link to this code:
https://cses.fi/paste/70372c1f7303f2c2103d74b/#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 5;
const int mod = 1e9 + 7;
int dp[maxn];
void solve() {
dp[0] = 1;
int n, x; cin >> n >> x;
vector<int> a(n);
for (int i = 0; i < n; i++) cin >> a[i];
for (int i = 0; i < n; i++) {
for (int val = 1; val <= x; val++) {
if (val - a[i] >= 0) dp[val] = (dp[val] + dp[val - a[i]]) % mod;
}
}
cout << dp[x] << "\n";
}
signed main() {
ios_base::sync_with_stdio(false); cin.tie(nullptr);
solve();
}