CSES - Shared codeLink to this code:
https://cses.fi/paste/b96c7449103d8d4515b2c5/
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
ll dp[1000005], mod=1e9+7, coins[105];
int main() {
ios_base::sync_with_stdio(false); cin.tie(nullptr);
int n, x;
cin>>n>>x;
for (int i=0;i<n;i++){
cin>>coins[i];
}
sort(coins, coins+n);
dp[0]=1;
for (int j=0;j<n;j++){
if (coins[j]>x) break;
for (int i=1;i<=x;i++){
if (coins[j]<=i)
dp[i]=(dp[i]+dp[i-coins[j]])%mod;
}
}
cout<<dp[x]<<endl;
return 0;
}